분석 방법의 기능을 용이하게하려면 3 개 국가 전환 다이어그램을 여기에 넣으십시오.
1.session save () 메소드
세션은 모든 최대 절전 모드 인터페이스 중에서 가장 중요한 인터페이스이며 데이터를 저장, 업데이트, 쿼리 및 삭제하는 방법을 제공합니다.
세션의 Save () 메소드는 임시 또는 자유 상태를 지속적인 상태로 변환 할 수 있습니다. 예를 들어, 고객 개체 저장 :
sessionFactory sessionFactory; configuration configuration = new configuration (). configure (); sessionFactory = configuration.BuildSessionFactory (); 세션 세션 = sessionFactory.Opensession (); 트랜잭션 tr = session.beginTransaction (); // 1. 고객 객체 COM1 = NEW CUSTOM (); C1.SETID (New Long (1)); C1.SetName ( "Test"); C1.SetEmail ( "[email protected]"); C1.SetPassword ( "123456"); C1.SetAdDress ( "Paradise"); // 2. 고객 객체 세션을 유지하려면 Save () 메소드를 호출하십시오 .Save (C1); tr.commit (); session.close ();
저장 () 메소드는 주로 다음 세 가지를 수행합니다.
(1) 새로 만들어진 임시 고객 객체를 캐시에 넣어 지속되도록합니다.
(2) 동시에, 객체 관계 매핑 파일의 OID 생성기에 따라, 즉 기본 키 생성 메소드는 객체에 대한 고유 한 OID를 생성합니다.
<! -1.
이곳에는 질문이 있습니다. 객체를 만들 때 setId () 메소드가 객체의 지속성에 대한 기본 키를 생성하는지 여부. 사실, 그렇지 않습니다. SetID는 설정대로 기본 키를 생성하지 않지만 객체 관계 매핑 파일에 구성된 기본 키 생성 메소드를 기반으로 기본 키를 생성합니다. 여러 번 더 실행할 수 있으며 기본 키는 자체적으로 자랍니다. 데이터베이스에서 여러 데이터를 볼 수 있습니다. 기본 키는 1부터 시작되므로 setid ()를 알 수 있습니다.
기본 키는 설정되지 않으며, 그렇지 않으면 데이터베이스 기본 키 고유성 검증이 불가능합니다.
기본 키 값을 수동으로 설정할 수도 있습니다. 저장 () 메소드를 과부하하고 과부하 메소드 저장 (C1, Newlong (1))을 사용하고 매번 수동으로 설정해야합니다.
(3) 삽입 문을 실행할 계획. 삽입 문은 즉시 실행되지 않으며 삽입 문은 세션이 캐시를 정리할 때만 실행됩니다. tr.commit () 트랜잭션 커밋.
2.session의 update () 메소드
독립형 객체를 지속적인 객체로 바꿉니다. 예를 들어:
SessionFactory SessionFactory; 구성 구성 = 새 구성 (). configure (); sessionFactory = configuration.BuildSessionFactory (); 세션 세션 1 = sessionfactory.opensession (); 트랜잭션 tr1 = session1.begintransaction (); // 1. 고객 객체 작성 고객 C1 = 새로운 고객 (); C1.SetID (New Long (1)); C1.SetName ( "테스트"); C1. 세트 메일 ( "[email protected]"); C1.SetPassword ( "123456"); C1.SetAddress ( "파라다이스"); // 2. CALL SESSION SAVE () 메소드 고객 객체 세션 1.SAVE (C1); tr1.commit (); 세션 1.close (); // 3. 프리 스테이트 객체를 업데이트하고, 변경 사항을 찾고, 업데이트 명령문 세션 세션 2 = sessionfactory.opensession (); 트랜잭션 tr2 = session2.begintransaction (); c1.setAddress ( "테스트 업데이트"); session2.update (C1); tr2.commit (); session2.close ();
세션의 업데이트 ()는 다음을 수행해야합니다.
(1) 무료 고객 개체를 세션 캐시에 추가하여 지속적인 개체가 되십시오.
(2) 업데이트 문을 실행합니다. Saving ()가 삽입 문을 실행하는 것처럼 업데이트 문을 즉시 실행하지 않습니다. 캐시가 지워지면 고객 객체가 업데이트 문으로 조립됩니다.
그런 다음 다시 실행하십시오.
고객이 변경되지 않더라도 기본적으로 캐시가 지워지면 업데이트 문이 조립됩니다. 변경하도록 설정 해야하는 경우 객체 관계 매핑 파일을 설정해야합니다.
3. 세션 saveorupdate () 메소드
saveorupdate () 메소드에는 save () 및 update () 메소드의 함수가 포함되어 있으며 전달 된 매개 변수의 상태에 따라 다른 메소드가 호출됩니다. Save () 메소드를 호출하여 무료 객체를 전달하여 호출하는 경우 임시 개체를 전달합니다.
업데이트 () 메소드. 들어오는 지속적인 객체를 반환합니다. 따라서 객체를 전달해야 할 때마다 SaveorupDate () 메소드가 전달 된 객체 상태의 상태를 자동으로 판단하고 처리 방법을 동적으로 호출합니다.
이 방법은 들어오는 대상의 상태를 어떻게 결정합니까? 다음 조건 중 하나가 충족되면 임시 상태입니다.
(1) Java 물체의 OID는 NULL이므로 객체가 그렇지 않으면 인스턴스화되지 않음을 의미합니다. 그것이 인스턴스화 되더라도, 그것은 삭제 된 객체이며 자유 상태가 삭제 된 후에 임시 상태가됩니다. 이 경우 물체는 임시 상태입니다.
(2) Java 객체에 버전 컨트롤이 있고 버전 번호가 NULL 인 경우 객체의 버전 번호가 없음을 의미합니다.
(3) 인터셉터를 사용자 정의하고 ISUNSAVED ()를 호출하고 값을 반환합니다.
4. 세션의 load () 및 get () 메소드
두 방법 모두 OID를 기반으로하며 데이터베이스에서 지속적인 객체를로드합니다. 영구 객체는 세션 캐시에 배치되며 다양한 요구에 따라 영구 객체를 작동 할 수 있습니다.
둘 사이의 차이 :
데이터베이스의 OID에 해당 레코드가 없으면 Load ()는 예외를 던지고 get ()가 NULL을 반환합니다.
5. 세션의 delete () 메소드
삭제 () 이름이 암시하는대로 데이터베이스의 Java 개체에 해당하는 레코드를 삭제하는 데 사용됩니다.
삭제 () 영구 객체가 전달되면 삭제 명령문을 조립하고 삭제를 실행합니다. 자유 상태 객체가 전달되면 최대 절전 모드는 먼저 자유 상태를 세션에 연결하고 지속적인 상태가 된 다음 삭제 명령문을 생성합니다.
삭제를 수행하십시오.
모두 세션 캐시가 지워질 때만 실행됩니다.
위의 실행은 모두 레코드에 해당하는 객체입니다.
session.delete ( "Customerwhere에서 ...")를 사용할 수 있습니다. 조건을 추가 한 후 여러 데이터를 삭제합니다.
SessionFactory SessionFactory; 구성 구성 = 새 구성 (). configure (); sessionFactory = configuration.BuildSessionFactory (); 세션 세션 1 = sessionfactory.opensession (); 트랜잭션 tr1 = session1.begintransaction (); // 1. 고객 객체 작성 고객 C1 = 새로운 고객 (); C1.SetID (New Long (1)); C1.SetName ( "테스트"); C1. 세트 메일 ( "[email protected]"); C1.SetPassword ( "123456"); C1.SetAddress ( "파라다이스"); // 2. 고객 객체 세션 1.save (C1)를 유지하려면 Save () 메소드 메소드를 호출하십시오. tr1.commit (); 세션 1.close (); // 3. 자유 상태 객체를 세션에 연결하고 끈기 후 캐시를 지우고 삭제 명령문을 실행하십시오. 직접 삭제하기 위해 영구 상태에 넣으십시오. 세션 세션 2 = sessionfactory.opensession (); 트랜잭션 tr2 = session2.begintransaction (); session2.delete (C1); tr2.commit (); session2.close ();
실행 결과, 콘솔 출력 :
최대 절전 모드 : 고객 중에서 Max (ID)를 선택하십시오
Hibernate : 고객에 삽입 (이름, 이메일, 암호, 전화, 주소, 섹스, is_married, 설명, 이미지, 생일, registered_time, id) 값 (?
최대 절전 모드 : ID =?
요약
위의 내용은 최대 절전 모드에서 세션 추가, 삭제, 수정 및 검색 작업 코드에 대한 자세한 설명입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!