Hibernate框架 查詢優化

2021-08-19 21:23:50 字數 953 閱讀 4392

一、類級別查詢

get方法:沒有任何策略,呼叫即立即查詢資料庫載入資料。

load方法:應用類級別的載入策略

lazy(預設值):true,查詢類時,會返回**物件,會在使用屬性時,根據關聯的session查詢資料庫,載入資料

lazy:false. load方法會與get方法沒有任何區別,呼叫時即載入資料

結論:為了提高效率,建議使用延遲載入(懶載入)

注意:使用懶載入時要確保,呼叫屬性載入資料時,session還是開啟的,不然會丟擲異常

二、關聯級別查詢

1、集合策略

lazy屬性: 決定是否延遲載入

true(預設值): 延遲載入,懶載入

false: 立即載入

extra: 極其懶惰

fetch屬性: 決定載入策略.使用什麼型別的sql語句載入集合資料

select(預設值): 單錶查詢載入

join: 使用多表查詢載入集合

subselect:使用子查詢載入集合

2、關聯屬性策略

fetch 決定載入的sql語句

select: 使用單錶查詢

join : 多表查詢

lazy 決定載入時機

false: 立即載入

proxy: 由customer的類級別載入策略決定.

結論:為了提高效率,fetch的選擇上應選擇select, lazy的取值應選擇true, 全部使用預設值

no-session問題解決:擴大session的作用範圍

三、批量抓取

hibernate 查詢優化

1.延遲載入先獲取到 物件,當真正使用到該物件中的屬性的時候,才會傳送sql語句,是hibernate框架提公升效能的方式 2.類級別的延遲載入 session物件的load方法預設就是延遲載入 customer c session.load customer.class,1l 沒有傳送sql語句,...

Hibernate框架 批量查詢

hql查詢 hibernate query language 多表查詢,但不複雜時使用 hibernate獨家查詢語言,屬於物件導向的查詢語言 1 基本查詢 基本查詢 public void fun1 2 條件查詢 2.1 直接查詢 條件查詢 hql語句中,不可能出現任何資料庫相關的資訊的 publ...

Hibernate 框架的查詢方式

query 查詢介面 1.具體的查詢 如下 1.查詢所有記錄 query query session.createquery from customer listlist query.list system.out.println list 2.條件查詢 query query session.cr...