Hibernate基礎學習之實體類(持久化類)的編寫規則及相關操作(CRUD)
實體類與表名一一對應,類中的屬性與表中的列名(column)一一對應,中類名.hbm.xml中配置;
編寫規則
(1)實體類中的屬性都是private私有的;
(2)私有屬性的setter和getter方法都是共有的public;
(3)要求實體類必須要有一個屬性作為唯一值(需要與表中的主鍵primary key對應);
(4)實體類屬性建議不使用基本資料型別,而是使用基本資料型別所對應的包裝類;
int--Integer, byte--Byte short--Short, long--Long,
double--Double, float--Float boolean--Boolean, char--Character,
原因:比如使用int score的時候,則沒有資料(null)和得分為0就無法區分;或者說無法為它賦值為null表示沒有分數。
Hibernate主鍵生成策略
hibernate要求實體類裡面必須有一屬性作為唯一值,對應表主鍵,有不同的生成策略;
在實體類包中的非核心配置檔案.hbm.xml中配置
<id name="uid" column="uid"> <!-- 設定資料庫表id的生成策略generator 主要是兩種: 1、native:可根據sql資料庫型別來自動選擇identity或者sequence或者hilo方式 2、uuid:hibernate採用128位的uuid演算法生成的識別符號 --> <generator class="native"></generator> </id>
1、native:可根據sql資料庫型別來自動選擇identity或者sequence或者hilo方式
2、uuid(屬性型別應該設定為String):hibernate採用128位的uuid演算法生成的識別符號
實體類操作:
進行crud操作(create, read, update, delete)
查詢操作 根據id查詢,呼叫session中的get方法實現
//session
//第一個引數:實體類的引數
//第二個引數:id值
User user = session.get(User.class, 3);
修改操作 先查詢,後修改
(1)使用session類的get()方法獲得物件;
(2)對該物件使用setter方法進行修改;
(3)使用session類的update()方法,更新相關的物件。
//修改操作
//先查後改
User user = session.get(User.class, 2);
//向返回的user物件裡設定修改之後的值
user.setUsername("black");
//使用update方法進行修改
session.update(user);
刪除操作 先查詢,後刪除
(1)使用session類的get()方法獲得物件;
(2)使用session類的delete()方法刪除。
User user = session.get(User.class, 2);
session.delete(user);
另外一種方法:不建議使用
User user = new User();
user.setUid(2);
session.delete(user);