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

淺談Hibernate Session實例

開發 后端
這里介紹Hibernate第一級緩存由Hibernate Session實例維護,其中保持了Session當前所有關聯實體的數據,也稱為內部緩存。

學習Hibernate時,經常會遇到一些小問題,這里將介紹一些Hibernate問題的解決方法。包括介紹Hibernate Session實例。

一.在數據庫中條件查詢速度很慢的時候,如何優化?
1.建索引
2.減少表之間的關聯
3.優化sql,盡量讓sql很快定位數據,不要讓sql做全表查詢,應該走索引,把數據量大的表排在前面
4.簡化查詢字段,沒用的字段不要,已經對返回結果的控制,盡量返回少量數據

二.在Hibernate中進行多表查詢,每個表中各取幾個字段,也就是說查詢出來的結果集并沒有一個實體類與之對應,如何解決這個問題?

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

解決方案二,對每個表的bean寫構造函數,比如表一要查出field1,field2兩個字段,那么有一個構造函數就是Bean(type1 filed1,type2 field2) ,然后在hql里面就可以直接生成這個bean了。具體怎么用請看相關文檔,我說的不是很清楚。

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

Session.load/get方法均可以根據指定的實體類和id從數據庫讀取記錄,并返回與之對應的實體對象。其區別在于:

如果未能發現符合條件的記錄,get方法返回null,而load方法會拋出一個ObjectNotFoundException. Load方法可返回實體的代理類實例,而get方法永遠直接返回實體類。

load方法可以充分利用內部緩存和二級緩存中的現有數據,而get方法則僅僅在內部緩存中進行數據查找,如沒有發現對應數據,將越過二級緩存,直接調用SQL完成數據讀取。

四.Session在加載實體對象時,將經過的過程:

首先,Hibernate中維持了兩級緩存。第一級緩存由Hibernate Session實例維護,其中保持了Session當前所有關聯實體的數據,也稱為內部緩存。而第二級緩存則存在于 SessionFactory層次,由當前所有由本SessionFactory構造的Hibernate Session實例共享。出于性能考慮,避免無謂的數據庫訪問,Session在調用數據庫查詢功能之前,會先在緩存中進行查詢。首先在第一級緩存中,通過實體類型和id進行查找,如果第一級緩存查找命中,且數據狀態合法,則直接返回。

之后,Session會在當前“NonExists”記錄中進行查找,如果“NonExists”記錄中存在同樣的查詢條件,則返回 null.“NonExists”記錄了當前Hibernate Session實例在之前所有查詢操作中,未能查詢到有效數據的查詢條件(相當于一個查詢黑名單列表)。如此一來,如果Session中一個無效的查詢條件重復出現,即可迅速作出判斷,從而獲得最佳的性能表現。

對于load方法而言,如果內部緩存中未發現有效數據,則查詢第二級緩存,如果第二級緩存命中,則返回。

如在緩存中未發現有效數據,則發起數據庫查詢操作(Select SQL),如經過查詢未發現對應記錄,則將此次查詢的信息在“NonExists”中加以記錄,并返回null.
◆根據映射配置和Select SQL得到的ResultSet,創建對應的數據對象。
◆將其數據對象納入當前Session實體管理容器(一級緩存)。
◆執行Interceptor.onLoad方法(如果有對應的Interceptor)。
◆將數據對象納入二級緩存。
◆如果數據對象實現了LifeCycle接口,則調用數據對象的onLoad方法。
◆返回數據對象。

【編輯推薦】

  1. Hibernate可行性全面概括
  2. Hibernate Sequence基礎描述
  3. 淺析Hibernate使用EhCache
  4. Hibernate的一級Cache
  5. Hibernate update淺談
責任編輯:佚名 來源: 新浪科技
相關推薦

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領域

2009-09-28 13:43:28

使用Hibernate

2009-09-25 09:46:03

Hibernate s

2009-09-23 17:03:08

Hibernate S

2009-09-25 13:51:13

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-23 17:05:52

Hibernate S

2009-09-29 16:16:58

Hibernate H

2009-06-12 16:00:13

Session方法Hibernate

2009-06-26 16:34:50

delete()方法Hibernate S
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本不卡免费新一二三区 | 不卡在线视频 | 精品九九九 | 亚洲国产精品久久 | 欧美视频在线播放 | 一区二区三区久久久 | 欧美日韩成人网 | 久久久久91 | 精品国产高清一区二区三区 | 福利片在线观看 | 懂色一区二区三区免费观看 | 91精品久久久久久久 | 久草www| 国产一区二区三区不卡av | 色www精品视频在线观看 | 精品一区二区三区中文字幕 | 亚洲视频免费在线观看 | 色吧色综合 | 中文精品视频 | 天天干在线播放 | 免费在线毛片 | 国产精品一区二区久久久久 | 在线成人www免费观看视频 | 777777777亚洲妇女 | 羞羞视频免费观看入口 | 久久曰视频 | 国产一级一级 | 欧美精品欧美精品系列 | 中文字幕亚洲精品 | 怡红院免费的全部视频 | 亚洲成人一区二区 | 午夜av电影院 | 亚洲成人一区 | 黄色大片免费网站 | 欧美一区二区激情三区 | 日韩在线免费 | 美女午夜影院 | 国产99热 | 亚洲人成人一区二区在线观看 | 国产免费福利小视频 | 99在线观看视频 |