오늘 저는 최대 절전 모드를 통해 데이터베이스를 추가, 삭제, 수정 및 확인하는 방법을 배웠습니다. 간단히 소개하겠습니다.
먼저 학생 수업 생성 :
package com.hibernate.model; import javax.persistence.column; import javax.persistence.entity; import javax.persistence.generatedValue; import javax.persistence.id; import javax.persistence.table. @entity @table (name private string); private string; 출생지; @id @generatedValue (name = "_id") public int getid () {return id;} public void setid (int id) {this.id = id;}@column (name = "_name") public string getName () {return name;} public void setname (string name) {name =}}} getage () {return age;} public void setage (int age) {this.age = age;}@column (name = "_birthplace") public string getbirthplace () {return birthplace;} public void setbirthplace (String Birthplace) {this.birthplace = birthplace;}} 그런 다음 유형의 Junit 테스트 케이스의 TeacherTest를 만듭니다.
Session.Save () 메소드에 대해 먼저 이야기 해 봅시다. 즉, 추가하십시오.
package com.hibernate.model; import org.hibernate.query; import org.hibernate.ssession; import org.hibernate.sessionfactory; import org.hibernate.cfg.annotationconfiguration; import org.junit.fterclass; import org.junit.beforeclass; 정적 sessionFactory sf = null; @beforeclass public static void beforeclass () {try {sf = new antationConfiguration (). configure (). buildSessionFactory (); 때때로 나타나는 버그가 있고 때로는 나타나지 않는 버그가 있기 때문에}}}}}}} ^} ^ ^ ^ ^ ^@). void testsave () {// 교사 증가 t = new Teacher (); T.setage (23); T.setname ( "moluo"); T.setbirthplace ( "huangshan"); 세션 세션 = sf.getCurrentsess (); session.begintransaction (); session.save (t); comping (); 후 class () {sf.close ();}}밝은 결과 :
Session.Delete () 메소드에 대해 이야기 해 봅시다.
@test public void testdelete () {// 삭제 교사 t = new Teacher (); t.setid (2); 세션 세션 = sf.getCurrentsession (); session.begintransaction (); session.delete (t); session.getTransaction (). commit ();}밝은 결과 :
그런 다음 Session.get ()로 이동하여 확인하십시오.
@test public void testget () {// 세션 세션 get = sf.getCurrentSession (); session.begintransaction (); 교사 t = (교사) 세션 .get (교사 .class, 1); System.out.println ( "이름 :"+t.getName ()); session.getTransaction (). commit (); }밝은 결과 :
최대 절전 모드 : Column1_1_0_, Column2_1_0_, Age Column2_1_0_, Column3_1_0_, Teacher0 _. 이름은 : Moluo입니다
다른 쿼리 메소드를 사용해 보겠습니다 : session.load () :
@test public void testload () {//로드 세션 세션 = sf.getCurrentSession (); session.begintransaction (); 교사 t = (교사) 세션 .LOAD (교사 .class, 1); System.out.println ( "이름 :"+t.getName ()); session.getTransaction (). commit (); }밝은 결과 :
최대 절전 모드 : Column1_1_0_, Column2_1_0_, Age Column2_1_0_, Column3_1_0_, Teacher0 _. 이름은 : Moluo입니다
여기서 우리는이 두 쿼리의 차이점을 설명합니다. 우선, 쿼리가 될 객체가 존재하지 않을 때 반환 된 정보는 다릅니다. get 메소드가 반환됩니다 : java.lang.nullpointerexception
로드 메소드는 다음과 같습니다. org.hibernate.objectnotfoundException : norowwithegegevivenInlifierexists
둘째,로드는 프록시 오브젝트를 반환하고 실제로 사용될 때 SQL 문이 발행됩니다. 또한 지연없이 데이터베이스에서 직접 데이터를로드하십시오.
마지막으로 가장 일반적으로 사용되는 업데이트 방법에 대해 이야기하고 HQL 문을 통해 업데이트 해 보겠습니다.
@test public void testupdate () {// 업데이트 세션 세션 = sf.getCurrentSession (); session.begintransaction (); 문자열 URL = "업데이트 교사 T 세트 T.BIRTHPLAPE = 'anhui'여기서 id = 1"; // 여기서 교사는 테이블 이름이 아닌 객체 이름이어야합니다. t는 객체 query q = session.createquery (url)의 별칭입니다. // 여기서 가져온 패키지는 다음과 같습니다. import org.hibernate.query; Q.ExecuteUpdate (); session.getTransaction (). commit (); }밝은 결과 :
이 업데이트를 통해 Moro의 고향은 Huangshan에서 Anhui까지 업데이트되었습니다.
실제로 SESSION.UPDATE ()의 업데이트 방법이 있지만이 업데이트 방법은이 업데이트 메소드입니다. 한 번에 열의 일부만 업데이트하는 경우이 업데이트 메소드는 모든 열을 업데이트하여 효율적이지 않으므로 사용하는 것이 좋습니다. 물론, 그들을 보충하는 방법도 있습니다. 예를 들어, XML을 사용하는 경우 구성 파일에서 업데이트하지 않으려는 열의 속성 태그에서 update = "false"를 설정할 수 있습니다. 또한 구성 파일의 클래스 후 동적 업데이트를 설정할 수도 있습니다. Dynamic-Update = "True"; 물론 주석을 사용하는 경우 @column (update = "false")을 설정할 수 있습니다. 실제로, 이것들은 유연하지 않으며 HQL을 사용하는 것이 가장 좋으므로 HQL 업데이트 코드 만 여기에 게시됩니다.
요약
위는 세션을 통해 작업을 추가, 삭제, 수정 및 검색하는 최대 절전 모드의 예제 분석에 대한이 기사의 모든 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트를 참조 할 수 있습니다.
최대 절전 모드 세션에 대해 빠르게 배우십시오
동면 속성 레벨 주석 인스턴스 코드
Hibernate는 hb.xml을 사용하여 매핑 관계 분석을 구성합니다
단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!