喜歡就點擊上面藍色字,更多精彩!
Hibernate估計大家已經用過很多年了吧,好多同學說用過Hibernate,不需要你來講,但再仔細想想,你能告訴我Hibernate是什麼嗎?今天帶大家重新認識一下你認識的Hibernate。
Hibernate 概述:持久化對象的生命週期
Transient Objects:使用new 操作符初始化的對象不是立刻就持久的。它們的狀態是瞬時的,也就是說它們沒有任何跟數據庫表相關聯的行為,只要應用不再引用這些對象(不再被任何其它對象所引用),它們的狀態將會丟失,並由垃圾回收機制回收。
Persist Objects:持久實例是任何具有數據庫標識的實例。它有持久化管理器Session統一管理,持久實例是在事務中進行操作的——它們的狀態在事務結束時同數據庫進行同步。當事務提交時,通過執行SQL的INSERT、UPDATE和DELETE語句把內存中的狀態同步到數據庫中。
Detached Objects:Session關閉之後,持久化對象就變為detached對象。表示這個對象不能再與數據庫保持同步,它們不再受Hibernate管理。
1/6
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)
1/6
Hibernate 概述:Hibernate主鍵策略
Hibernate主鍵的映射
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主鍵策略
1.assigned:主鍵由外部程序負責生成,無需Hibernate參與,主鍵由應用邏輯產生,實體對象再保存之前,必須顯式的設置OID,主鍵的產生無需Hibernate的干預
2.Increment:hibernate將按照遞增的方式設定主鍵,具體的方式是
先獲取當前記錄主鍵的最大值,然後再將該值加1作為主鍵。
3.Identity:表示數據庫的主鍵生成方式為採用數據庫的主鍵生成機制,例如SQLServer或MySQL的自動主鍵生成機制。
4.Sequence:這種方式針對由序列方式產生主鍵的數據庫,例如Oracle。在
5.Native:意味著將主鍵的生成機制交由Hibernate決定,Hibernate會根據配置文件中的方言(Dialect)定義,採用不同的數據庫特定的主鍵生成方式。這是我們最常使用的方式
閱讀更多 程序源代碼 的文章