成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談Hibernate Session實(shí)例

開(kāi)發(fā) 后端
這里介紹Hibernate第一級(jí)緩存由Hibernate Session實(shí)例維護(hù),其中保持了Session當(dāng)前所有關(guān)聯(lián)實(shí)體的數(shù)據(jù),也稱為內(nèi)部緩存。

學(xué)習(xí)Hibernate時(shí),經(jīng)常會(huì)遇到一些小問(wèn)題,這里將介紹一些Hibernate問(wèn)題的解決方法。包括介紹Hibernate Session實(shí)例。

一.在數(shù)據(jù)庫(kù)中條件查詢速度很慢的時(shí)候,如何優(yōu)化?
1.建索引
2.減少表之間的關(guān)聯(lián)
3.優(yōu)化sql,盡量讓sql很快定位數(shù)據(jù),不要讓sql做全表查詢,應(yīng)該走索引,把數(shù)據(jù)量大的表排在前面
4.簡(jiǎn)化查詢字段,沒(méi)用的字段不要,已經(jīng)對(duì)返回結(jié)果的控制,盡量返回少量數(shù)據(jù)

二.在Hibernate中進(jìn)行多表查詢,每個(gè)表中各取幾個(gè)字段,也就是說(shuō)查詢出來(lái)的結(jié)果集并沒(méi)有一個(gè)實(shí)體類(lèi)與之對(duì)應(yīng),如何解決這個(gè)問(wèn)題?

解決方案一,按照Object[]數(shù)據(jù)取出數(shù)據(jù),然后自己組bean

解決方案二,對(duì)每個(gè)表的bean寫(xiě)構(gòu)造函數(shù),比如表一要查出field1,field2兩個(gè)字段,那么有一個(gè)構(gòu)造函數(shù)就是Bean(type1 filed1,type2 field2) ,然后在hql里面就可以直接生成這個(gè)bean了。具體怎么用請(qǐng)看相關(guān)文檔,我說(shuō)的不是很清楚。

三.Session.load()和Session.get()的區(qū)別

Session.load/get方法均可以根據(jù)指定的實(shí)體類(lèi)和id從數(shù)據(jù)庫(kù)讀取記錄,并返回與之對(duì)應(yīng)的實(shí)體對(duì)象。其區(qū)別在于:

如果未能發(fā)現(xiàn)符合條件的記錄,get方法返回null,而load方法會(huì)拋出一個(gè)ObjectNotFoundException. Load方法可返回實(shí)體的代理類(lèi)實(shí)例,而get方法永遠(yuǎn)直接返回實(shí)體類(lèi)。

load方法可以充分利用內(nèi)部緩存和二級(jí)緩存中的現(xiàn)有數(shù)據(jù),而get方法則僅僅在內(nèi)部緩存中進(jìn)行數(shù)據(jù)查找,如沒(méi)有發(fā)現(xiàn)對(duì)應(yīng)數(shù)據(jù),將越過(guò)二級(jí)緩存,直接調(diào)用SQL完成數(shù)據(jù)讀取。

四.Session在加載實(shí)體對(duì)象時(shí),將經(jīng)過(guò)的過(guò)程:

首先,Hibernate中維持了兩級(jí)緩存。第一級(jí)緩存由Hibernate Session實(shí)例維護(hù),其中保持了Session當(dāng)前所有關(guān)聯(lián)實(shí)體的數(shù)據(jù),也稱為內(nèi)部緩存。而第二級(jí)緩存則存在于 SessionFactory層次,由當(dāng)前所有由本SessionFactory構(gòu)造的Hibernate Session實(shí)例共享。出于性能考慮,避免無(wú)謂的數(shù)據(jù)庫(kù)訪問(wèn),Session在調(diào)用數(shù)據(jù)庫(kù)查詢功能之前,會(huì)先在緩存中進(jìn)行查詢。首先在第一級(jí)緩存中,通過(guò)實(shí)體類(lèi)型和id進(jìn)行查找,如果第一級(jí)緩存查找命中,且數(shù)據(jù)狀態(tài)合法,則直接返回。

之后,Session會(huì)在當(dāng)前“NonExists”記錄中進(jìn)行查找,如果“NonExists”記錄中存在同樣的查詢條件,則返回 null.“NonExists”記錄了當(dāng)前Hibernate Session實(shí)例在之前所有查詢操作中,未能查詢到有效數(shù)據(jù)的查詢條件(相當(dāng)于一個(gè)查詢黑名單列表)。如此一來(lái),如果Session中一個(gè)無(wú)效的查詢條件重復(fù)出現(xiàn),即可迅速作出判斷,從而獲得最佳的性能表現(xiàn)。

對(duì)于load方法而言,如果內(nèi)部緩存中未發(fā)現(xiàn)有效數(shù)據(jù),則查詢第二級(jí)緩存,如果第二級(jí)緩存命中,則返回。

如在緩存中未發(fā)現(xiàn)有效數(shù)據(jù),則發(fā)起數(shù)據(jù)庫(kù)查詢操作(Select SQL),如經(jīng)過(guò)查詢未發(fā)現(xiàn)對(duì)應(yīng)記錄,則將此次查詢的信息在“NonExists”中加以記錄,并返回null.
◆根據(jù)映射配置和Select SQL得到的ResultSet,創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)對(duì)象。
◆將其數(shù)據(jù)對(duì)象納入當(dāng)前Session實(shí)體管理容器(一級(jí)緩存)。
◆執(zhí)行Interceptor.onLoad方法(如果有對(duì)應(yīng)的Interceptor)。
◆將數(shù)據(jù)對(duì)象納入二級(jí)緩存。
◆如果數(shù)據(jù)對(duì)象實(shí)現(xiàn)了LifeCycle接口,則調(diào)用數(shù)據(jù)對(duì)象的onLoad方法。
◆返回?cái)?shù)據(jù)對(duì)象。

【編輯推薦】

  1. Hibernate可行性全面概括
  2. Hibernate Sequence基礎(chǔ)描述
  3. 淺析Hibernate使用EhCache
  4. Hibernate的一級(jí)Cache
  5. Hibernate update淺談
責(zé)任編輯:佚名 來(lái)源: 新浪科技
相關(guān)推薦

2009-09-25 10:53:40

Hibernate S

2009-09-23 17:18:16

Hibernate S

2009-09-23 17:07:31

Hibernate C

2009-09-21 13:05:18

Hibernate u

2009-09-28 15:47:59

Hibernate O

2009-09-29 16:04:29

Hibernate S

2009-09-24 17:24:20

Hibernate S

2009-09-29 10:46:58

Hibernate領(lǐng)域

2009-09-28 13:43:28

使用Hibernate

2009-09-25 13:51:13

Hibernate S

2009-09-25 09:46:03

Hibernate s

2009-09-23 17:03:08

Hibernate S

2009-09-23 17:05:52

Hibernate S

2009-09-27 16:21:22

Hibernate C

2009-09-22 13:41:10

直接使用Hiberna

2009-09-27 10:02:29

定制Hibernate

2009-09-28 13:39:01

Hibernate工作

2009-09-29 16:16:58

Hibernate H

2009-06-26 16:34:50

delete()方法Hibernate S

2009-06-26 16:33:09

saveOrUpdatHibernate
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 久久不卡| 玖玖视频免费 | 久久久久久久久久久久91 | 国产成人高清视频 | 99爱国产| 日韩欧美在线不卡 | 久久国产精品一区二区三区 | 国产中文一区二区三区 | 欧美一级毛片免费观看 | 中文字幕在线视频精品 | 国产免费福利在线 | 国产农村妇女毛片精品久久麻豆 | 精品国产免费一区二区三区演员表 | 久久国产综合 | 网色 | 国产亚洲一区二区在线观看 | 色综合色综合 | a网站在线观看 | 最新国产精品精品视频 | 午夜国产一级 | 精品国产欧美在线 | 男人电影天堂 | 久久精品一区二区三区四区 | 一区2区 | 欧美激情久久久 | 成人国产免费观看 | 亚洲成人免费视频在线观看 | 亚洲精品成人 | 欧美一区二区视频 | 成人一级视频在线观看 | 99久视频| 日日日干干干 | 久久久69 | 精品免费视频 | 三级在线观看 | 国产免费观看一区 | 日本一卡精品视频免费 | 精品视频一区二区三区 | 北条麻妃视频在线观看 | 狠狠干狠狠操 | 91久久久久久久久久久久久 |