Hibernate配置文件的編寫二(實體類編寫規則、狀態、操作和OID生成策略)

學習筆記:
一、編寫實體類的規則:
①hibernate要求實體類有一個屬性值是唯一值。
②屬性值都是私有的。
③私有屬性值都有public的set、get方法。
④實體類屬性建議不使用基本數據類型,使用基本類型對應的包裝類。比如,學生的分數用int score;當學生的分數得到0分可以:int score = 0;但是如果學生沒有參加考試,無法準確的表達,所以用包裝類Integer score = null;表示。
二、hibernate主鍵(OID)生成策略
<generator class="native"></generator>
native:根據使用數據庫自動選擇哪個值。


三、對實體類的操作
1、添加操作:調用session的save方法,主鍵爲自動增長時,如果在代碼設置id的值沒有用,還是按自動增長添加主鍵的值。
User user = new User();
user.setUsername("小一");
user.setPassword("123");
session.save(user);
2、根據id查詢:調用session裏面的get方法。第一個參數:實體類的class,第二個參數:id值。
User user = session.get(User.class,1);
System.out.println(user);

3、修改操作:先查詢再修改
第一種:修改id爲1的密碼爲456.
①先根據id查詢。
User user = session.get(User.class,1);
②在返回的user對象設置修改的值。
user.setPassword("456");
③調用session的update方法修改:到user對象裏面找到id的值,再根據id進行修改。
session.update(user);
第二種:把id爲1的名字修改爲tom,一般不用這種方法。它是更新了所有的值,除了修改的字段,剩餘的其它字段會全更新爲null。
User user = new User();
user.setId(1);
user.setUsename("tom");
session.update(user);

4、刪除操作:調用session的delete方法
第一種:根據id查詢出對象,再刪除。
User user = session.get(User.class,1);
session.delete(user);
第二種:
User user = new User();
user.setId(1);
session.delete(user);
四、瞭解實體類相關的狀態
1、

①臨時態(瞬時態)

使用new操作符初始化的對象不是立刻就持久化的。他們的狀態是瞬時的,

他們沒有任何跟數據庫表相關聯的行爲,只要應用不再引用這些對象(不再被任何

其他對象所引用),他們的狀態將會丟失,並由垃圾回收機制回收。對象裏面沒有id值,與session沒有關係。

②持久態:對象裏面有id值,與session有關系。
③遊離(託管態):對象裏面有id值,與session沒有關係。用的不多
2、操作實體類對象的方法:saveOrUpdate方法:實現添加、實現修改。
實體類爲臨時態時做的添加save操作。
實體類爲遊離態、持久態時做的修改update操作。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章