Hibernate-day02--主鍵生成策略 -一級緩存-事務(wù)管理

1.持久化類的編寫規(guī)則

2.主鍵的分類

1.自然主鍵 :利用表中的一個字段
2.代理主鍵 :本身不是表中必須的字段
--使用還是比較推薦代理主鍵,一旦主鍵參與到業(yè)務(wù)邏輯層,可能要修改源碼
-- 好的程序滿足OCP原則 ,對程序的擴(kuò)展OPen,對源碼的修改close的

3.主鍵的生成策略

1.主鍵的開發(fā)一般不允許用戶手動設(shè)置主鍵,一般主鍵交給數(shù)據(jù)庫,手動寫程序設(shè)置,在Bibernate為了減少程序的編寫,提供了很多種主鍵的生成策略。
---icrement :自動增長機(jī)制,適用于short,int,long類型的主鍵
---sequence:適用于short,int,long類型的主鍵,試用oracle
--indetity:適用于short,int,long類型的主鍵,試用Mysql
---uuid:試用于字符串類型的主鍵,使用hibernate中的隨機(jī)方式生成字符串主鍵。
---native:本地策略,可以在indetity和sequence之間自動切換
---assigned:放棄外鍵的管理,通過手動編寫程序或者用戶自己設(shè)置。
---foreign:外部的,一對一的一種關(guān)系映射的情況。

4.持久態(tài),瞬時態(tài),托管態(tài)

1.持久態(tài):持久化對象就是已經(jīng)被保存進(jìn)數(shù)據(jù)庫的實體對象,并且這個實體對象現(xiàn)在還處于Hibernate的緩存管理之中。這是對該實體對象的任何修改,都會在清理緩存時同步到數(shù)據(jù)庫中.
2.瞬時態(tài):當(dāng)我們通過Java的new關(guān)鍵字來生成一個實體對象時,這時這個實體對象就處于自由狀態(tài)。
3.托管態(tài):當(dāng)一個持久化對象,脫離開Hibernate的緩存管理后,它就處于游離狀態(tài),游離對象和自由對象的最大區(qū)別在于,游離對象在數(shù)據(jù)庫中可能還存在一條與它對應(yīng)的記錄,只是現(xiàn)在這個游離對象脫離了Hibernate的緩存管理,而自由對象不會在數(shù)據(jù)庫中出現(xiàn)與它對應(yīng)的數(shù)據(jù)記錄。


image.png

5.一級緩存

1.快照區(qū):當(dāng)進(jìn)行讀取的時候,會將其保存到快照區(qū),當(dāng)對這個對象修改的時候會在緩存區(qū)和快照區(qū)的進(jìn)行對比,如果不一樣則會對數(shù)據(jù)庫發(fā)送修改指令。


image.png

6.事務(wù)

1.事務(wù):也就是指邏輯上的一組操作要么全部成功,要么全部失敗。

事務(wù)的特性:
1.原子性:代表事務(wù)不可分割
2.一致性:代表事務(wù)執(zhí)行的前后,數(shù)據(jù)的完整性保持一致。
3.隔離性:代表一個事務(wù)執(zhí)行的過程中,不應(yīng)該受到其他事務(wù)的干擾。
4.持久性:代表事務(wù)執(zhí)行完成后,數(shù)據(jù)就持久到數(shù)據(jù)庫中。

image.png
2.設(shè)置隔離級別

<property name="hibernate.connection.isolation">4</property>


image.png

6.其他API

Query:用于接收HQL,查詢多個對象


image.png
image.png

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容