1、延遲載入:
當真正需要資料時才從資料庫中載入,目的就是為了提高執行效率
注意:當載入延遲載入的資料時,如果session關閉,那麼就會出現no session的異常,從而導致延遲載入的資料
無法載入
2、延遲載入分類:
1、實體級別的延遲載入
,只對load方法有效
2、集合關聯屬性的延遲載入
集合屬性延遲載入對於程式的效能提公升最為明顯。
建議使用lazy="extra"提高集合屬性的效率,功能除了具備lazy="true"功能外,還可以根據對集合屬性不同操作
傳送不同的sql語句,比如呼叫集合屬性的size、isempty方法時,它會傳送select count(*)
3、單端關聯屬性的延遲載入
4、普通屬性的延遲載入
3、抓取策略:
用於定義怎麼去獲取關聯屬性
在關聯屬性的標籤中都乙個屬性fetch,通過fetch屬性指定關聯的物件怎麼取
預設的fetch="select"
如果設定為fetch="join",使用左外連線將主體和關聯物件立即載入出來,只對get和load方法,在hql語句需要立即抓取關聯屬性通過fetch關鍵字
如果設定為fetch="subselect",如果使用get或者load方法載入主體物件,那麼傳送查詢語句,如果hql語句查詢主體物件,關聯物件通過子查詢抓取
batch-size : 有效的減少1+n產生的sql語句
4、快取:
什麼是快取:應用程式維持的記憶體,記憶體中放置一些常用的資料,以便提高程式讀取資料效率
5、快取的分類:
事務級別的快取:
適用於經常被不同執行緒進行刪除或者修改運算元據,事務級別的快取適用於單執行緒環境
session級別的快取 就是事務級別的快取,或者叫做一級快取
應用程式級別:
不經常修改的通用性資料放置到應用程式級別的快取中,讓多個事務共享這些資料
sessionfactory級別的快取 就屬於應用程式級別的快取,或者叫做二級快取
集群級別:
集群環境下,不同伺服器上的應用程式如果維持自己的快取,那麼就會導致集群中多個伺服器之間的快取資料無法同步,就需要集群級別快取
集群環境下的快取伺服器程式:redis
6、hibernate中的快取
1、一級快取:session級別的快取,在hibernate中session級別快取已經由hibernate,一級快取中的資料控制由hibernate自行維護,
不需要開發人員設定、維護。一級快取中只能儲存持久化狀態的實體物件 。hibernate提供了兩個方法可以讓開發人員對一級快取進行有限的管理
void flush() 重新整理快取,強制將快取中資料和資料庫中資料進行同步
void clear() 清空快取
2、二級快取:sessionfactory級別的快取,在hibernate預設並沒有開啟二級快取,hibernate也沒提供可以應用到企業級開發環境的快取實現
所以在hibernate如果需要使用二級快取,應用選擇hibernate支援的第三方的快取實現,然後開啟二級快取
二級快取中只能放置實體物件,而且是那些不經常修改並且經常被多個session訪問的資料應用放置到二級快取
7、如何使用二級快取
1、選擇hibernate支援的第三方快取實現,構建到我們專案中
2、配置快取、並且在hibernate的配置中啟用二級快取
1、將ehcache的配置檔案ehcache.xml放置到當前專案的src下
2、在hibernate.cfg.xml中開啟二級快取,並且指定二級快取的提供商
true
org.hibernate.cache.ehcache.ehcacheregionfactory
3、在hibernate對映檔案中指定哪些實體需要使用二級快取,並且指定二級快取的使用策略
在使用二級快取的實體對映檔案中加入
有關hibernate的查詢
hibernate查詢方式舉例 1 單個物件 a query query session.createquery from consortbean a where a.person.id query.setstring 0,pb.getid 引數從零開始 list list query.list b...
load和get之Hibernate的延遲載入機制
在hibernate中 如果你使用load方法,hibernate認為該id對應的物件 資料庫記錄 在資料庫中是一定存在的,所 以它可以放心的使用,它可以放心的使用 來延遲載入該物件。在用到物件中的其他屬性資料時才查詢資料庫,但是萬一資料庫中不存在該記錄,那沒辦法,只能拋異常 objectnotfo...
有關web的相關知識
今天的主要內容 一 web應用的相關知識 1 桌面應用程式c s和web應用程式b s 2 http協議 3 rul 4 web伺服器軟體 5 的系統的組成 二 安裝伺服器軟體tomcat 獲取 站點 http是一種無狀態的協議 是乙個簡單的請求響應序列 test.html的定為,資源定為。url統...