Hibernate第二章關聯映射的總結

來源:互聯網
上載者:User

標籤:png   src   臨時對象   緩衝   domain   利用   自己   清理   關聯映射   

1.type值的解釋:如:

1)type的值,不是java語言的一個類型的全稱,而是一個hibernate自訂 的類型的名稱。

2)Type的值,其實是對應hibernate中的一個類型的簡稱,而由 org.hibernate.type包下面的類型來真正完成java類型與資料庫類型的傳 換。

 

2.單類對單表的映射配置

1)類型的處理:

I.各種:type

II.精度:precision,scale

III.邏輯值的處理:boolean,yes_no

2)主鍵的處理

Native,assigned,uuid

3.資料庫編程最佳實務

1)資料庫的約束是越少越好

2)主鍵要用“非”業務的主鍵,一般會用uuid,guid做主鍵

4.單表映射

1)只有一個實體類映射一個表

2)有一個實體類 + 一個或者多個實值型別,合在一起映射為一個表

5.多表映射

定義:類有多個映射為多給表

6.資料庫層面,如orm無關

1)2個表之間要建立關係?該如何做?有多少種方法?

答案:

3種關係:

a)主鍵關聯:A表的主鍵對應B表的主鍵,(一對一的關係)

在資料庫如何建立這種關係?

結果:假定A做為主表,在B表裡面的某個欄位既是主鍵也是 外鍵。

b)外鍵關係:

c)串連表關聯(中間表關聯):

中間表關聯既可以做一對一,也可以做一對多,也可以做多對多 關聯,但實際項目中,出現中間表關聯的時候,一般就是多對多。

2)多對多關係,在資料庫層面本質上“不支援”,一般是把多對多關係拆分 為兩個一對多。

3)

7.set集合的解說 :

 

8.實體類型與實值型別:

 

 

9.Hibarnate對應的sql類型和java類型

 

 

 

10.Hibarnate關聯關係映射表:

 

 

 

11.常用資料庫系統中可使用的標識符產生器:

1)MySQL資料庫:identity、increment、hiho、native

2)SQL Server資料庫:identity、increment、hiho、native

3)Oracle資料庫:sequence、increment、hiho、native

 

12.hibernate開發的三種方式中的:

1)編寫domain object + 對應檔 -->建立出對應的資料庫

2)這裡我們說明如果要自動的建立出對應的資料庫,需要做配置 (hibernate.cfg.xml)

3)<property name=”hbm2ddl.auto”>create<property>

這裡有四個配置的值:create,update,create-drop,validate

 

I.Create:當我們的應用程式載入hibernate.cfg.xml

[new Configuration().cofig();]就會根據對應檔,建立出資料庫,每次都 會重新建立,原來表中的資料就沒有了。

II.update:如果資料庫中沒有該表 ,則建立,如果有表,則看有沒有變化, 如果有變化,則更新。

III.create-drop:在顯示關閉sessionFactory時,將drop掉資料庫的schema。

IIII.validate:相當於每次插入資料之前都會驗證資料庫中的表結構和hbm 檔案的結構是否一致。

 

注意:在開發測試中,我們配置哪個都可以測試,但是如果項目發布後, 最好自己配置一次,讓對應的資料庫產生,完成取消配置。

 

4)domain對象的細節:

a)需要一個無參的建構函式(用於hibernate反射該對像)

b)應當有一個無商務邏輯的主鍵屬性

c)給每個屬性提供 set get方法

d)在domain對象中的屬性,只有配置到了對象對應檔後,才會被 hibernate管理

e)屬性一般時private範圍

 

13.Session的save()方法用來將一個臨時對象轉變為持久化對象,也就是將一個 新的實體儲存到資料庫中。通過save()將持久化對象儲存到資料庫需要經過 以下步驟:

1)系統根據指定的ID建置原則,為臨時對象產生一個唯一的OID;

2)將臨時對像載入到緩衝中,使之變成持久化對象;

3)提交事務時,清理緩衝,利用持久化對象包含的資訊產生insert語句,將 持久化對象儲存到資料庫。

 

 

 

Hibernate第二章關聯映射的總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.