1. 程式人生 > >Hibernate基礎學習之實體類(持久化類)的編寫規則及相關操作(CRUD)

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);