自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解Hibernate的工作原理和體系結(jié)構(gòu)

開(kāi)發(fā) 后端
對(duì)Hibernate的工作原理的介紹。包括了Hibernate 的初始化、持久化狀態(tài)和游離狀態(tài)等,詳細(xì)解析Hibernate的體系結(jié)構(gòu)。

1.Hibernate 的初始化.

讀取Hibernate 的配置信息-〉創(chuàng)建Session Factory

1)創(chuàng)建Configeration類(lèi)的實(shí)例。

它的構(gòu)造方法:將配置信息(Hibernate config.xml)讀入到內(nèi)存。
一個(gè)Configeration 實(shí)例代表Hibernate 所有Java類(lèi)到Sql數(shù)據(jù)庫(kù)映射的集合。

2)創(chuàng)建SessionFactory實(shí)例

把Configeration 對(duì)象中的所有配置信息拷貝到SessionFactory的緩存中。
SessionFactory的實(shí)例代表一個(gè)數(shù)據(jù)庫(kù)存儲(chǔ)員源,創(chuàng)建后不再與Configeration 對(duì)象關(guān)聯(lián)。
緩存(cache):指Java對(duì)象的屬性(通常是一些集合類(lèi)型的屬性--占用內(nèi)存空間。
SessionFactory的緩存中:Hibernate 配置信息。OR映射元數(shù)據(jù)。
緩存-大:重量級(jí)對(duì)象 ?。狠p量級(jí)對(duì)象

3)調(diào)用SessionFactory創(chuàng)建Session的方法

1】用戶(hù)自行提供JDBC連接。

Connection con=dataSource.getConnection();
Session s=sessionFactory.openSession(con);

2】讓SessionFactory提供連接

Session s=sessionFactory.openSession();

4)通過(guò)Session 接口提供的各種方法來(lái)操縱數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)。 

Hibernate 的緩存體系

一級(jí)緩存:

Session 有一個(gè)內(nèi)置的緩存,其中存放了被當(dāng)前工作單元加載的對(duì)象。
每個(gè)Session 都有自己獨(dú)立的緩存,且只能被當(dāng)前工作單元訪(fǎng)問(wèn)。

二級(jí)緩存:

SessionFactory的外置的可插拔的緩存插件。其中的數(shù)據(jù)可被多個(gè)Session共享訪(fǎng)問(wèn)。

SessionFactory的內(nèi)置緩存:存放了映射元數(shù)據(jù),預(yù)定義的Sql語(yǔ)句。 

Hibernate 中Java對(duì)象的狀態(tài)

1.臨時(shí)狀態(tài) (transient)

特征:

1】不處于Session 緩存中
2】數(shù)據(jù)庫(kù)中沒(méi)有對(duì)象記錄

Java如何進(jìn)入臨時(shí)狀態(tài)

 1】通過(guò)new語(yǔ)句剛創(chuàng)建一個(gè)對(duì)象時(shí)
2】當(dāng)調(diào)用Session 的delete()方法,從Session 緩存中刪除一個(gè)對(duì)象時(shí)。 

2.持久化狀態(tài)(persisted)

特征:

1】處于Session 緩存中
2】持久化對(duì)象數(shù)據(jù)庫(kù)中設(shè)有對(duì)象記錄
3】Session 在特定時(shí)刻會(huì)保持二者同步

 Java如何進(jìn)入持久化狀態(tài)

1】Session 的save()把臨時(shí)-》持久化狀態(tài)
2】Session 的load(),get()方法返回的對(duì)象
3】Session 的find()返回的list集合中存放的對(duì)象
4】Session 的update(),saveOrupdate()使游離-》持久化

3.游離狀態(tài)(detached)

特征:

1】不再位于Session 緩存中
2】游離對(duì)象由持久化狀態(tài)轉(zhuǎn)變而來(lái),數(shù)據(jù)庫(kù)中可能還有對(duì)應(yīng)記錄。

Java如何進(jìn)入持久化狀態(tài)-》游離狀態(tài)

1】Session 的close()方法
2】Session 的evict()方法,從緩存中刪除一個(gè)對(duì)象。提高性能。少用。

您正在閱讀:詳解Hibernate的工作原理和體系結(jié)構(gòu)

【編輯推薦】

  1. Hibernate框架如何實(shí)現(xiàn)ORM
  2. 關(guān)于hibernate框架的簡(jiǎn)介
  3. 十五道關(guān)于Hibernate的面試題
責(zé)任編輯:張攀 來(lái)源: CSDN博客
相關(guān)推薦

2010-09-16 15:22:30

JVM體系結(jié)構(gòu)

2012-02-06 17:22:44

MySQL

2010-09-25 13:38:23

Inside JVM

2023-05-31 08:19:00

體系結(jié)構(gòu)設(shè)計(jì)

2009-02-04 09:48:39

體系結(jié)構(gòu)服務(wù)原理Web

2016-07-28 23:19:10

云計(jì)算SOA

2009-06-26 15:58:28

EJB

2011-06-30 09:07:00

Java EEWeb服務(wù)

2020-05-07 15:10:23

HBaseHadoop數(shù)據(jù)平臺(tái)

2010-03-22 09:08:24

Visual Stud

2009-09-11 10:38:03

LINQ體系結(jié)構(gòu)

2009-07-15 13:46:26

Swing體系結(jié)構(gòu)

2014-07-23 09:33:52

2018-04-23 09:25:24

MySQL結(jié)構(gòu)存儲(chǔ)

2010-04-08 10:17:37

Oracle體系結(jié)構(gòu)

2013-08-01 11:17:20

SAP

2016-12-26 10:29:01

Spring框架結(jié)構(gòu)

2010-06-21 14:51:14

ASON路由

2010-08-16 12:54:21

ASON路由技術(shù)

2009-09-08 14:34:42

Linq to SQL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)