重新認識你認識的Hibernate(二)

喜歡就點擊上面藍色字,更多精彩!

Hibernate估計大家已經用過很多年了吧,好多同學說用過Hibernate,不需要你來講,但再仔細想想,你能告訴我Hibernate是什麼嗎?今天帶大家重新認識一下你認識的Hibernate。

Hibernate 概述:持久化對象的生命週期

重新認識你認識的Hibernate(二)

Transient Objects:使用new 操作符初始化的對象不是立刻就持久的。它們的狀態是瞬時的,也就是說它們沒有任何跟數據庫表相關聯的行為,只要應用不再引用這些對象(不再被任何其它對象所引用),它們的狀態將會丟失,並由垃圾回收機制回收。

Persist Objects:持久實例是任何具有數據庫標識的實例。它有持久化管理器Session統一管理,持久實例是在事務中進行操作的——它們的狀態在事務結束時同數據庫進行同步。當事務提交時,通過執行SQL的INSERT、UPDATE和DELETE語句把內存中的狀態同步到數據庫中。

Detached Objects:Session關閉之後,持久化對象就變為detached對象。表示這個對象不能再與數據庫保持同步,它們不再受Hibernate管理。

1/6

Hibernate 概述:Hibernate基本數據類型

重新認識你認識的Hibernate(二)

1/6

Hibernate 概述:Hibernate大對象數據類型

在java中,java.lang.String可以用來表示長字符串(長度超過255),字節數組byte[]可以用來存放圖片或文件的二進制數據。此外在JDBCAPI中還提供了java.sql.Clob和java.sql.Blob類型,分別和標準SQL的CLOB和BLOB類型相對應。CLOB表示字符串大對象(CharacterLarger Object),BLOB表示二進制大對象(BinaryLarger Object)

重新認識你認識的Hibernate(二)

1/6

Hibernate 概述:Hibernate主鍵策略

Hibernate主鍵的映射標籤的DTD文檔如下

name CDATA #IMPLIED

node CDATA #IMPLIED

access CDATA #IMPLIED

column CDATA #IMPLIED

type CDATA #IMPLIED

length CDATA #IMPLIED >

典型的主鍵映射代碼如下

Hibernate對主鍵的管理分為三大類

1.Hibernate對主鍵id賦值

2.應用程序自己對主鍵id賦值

3.由數據庫對主鍵id賦值

1/6

Hibernate 概述:Hibernate主鍵策略

標籤的可選元素子元素是一個java類的名字,用來為該持久化類的實例生成唯一的標識,所有的生成器都實現org.hibernate.id.IdentifierGenerator接口。Hibernate提供了很多內置的實現類。

1.assigned:主鍵由外部程序負責生成,無需Hibernate參與,主鍵由應用邏輯產生,實體對象再保存之前,必須顯式的設置OID,主鍵的產生無需Hibernate的干預

2.Increment:hibernate將按照遞增的方式設定主鍵,具體的方式是

先獲取當前記錄主鍵的最大值,然後再將該值加1作為主鍵。

3.Identity:表示數據庫的主鍵生成方式為採用數據庫的主鍵生成機制,例如SQLServer或MySQL的自動主鍵生成機制。

4.Sequence:這種方式針對由序列方式產生主鍵的數據庫,例如Oracle。在的子元素指定用作產生主鍵的序列名稱。

H_SOME_SEQUENCE

5.Native:意味著將主鍵的生成機制交由Hibernate決定,Hibernate會根據配置文件中的方言(Dialect)定義,採用不同的數據庫特定的主鍵生成方式。這是我們最常使用的方式

H_SOME_SEQUENCE


分享到:


相關文章: