Hibernate 查詢方式

2021-07-14 16:59:12 字數 1305 閱讀 2619

hibernate共有三種查詢方式:hql、qbc和sql

hql

寫起來靈活直觀,而且與所熟悉的sql的語法類似。

條件查詢、分頁查詢、連線查詢、巢狀查詢,包括一些查詢函式(count(),sum()等)、查詢條件的設定等寫起來與sql語法一致,主要區別就是把表名換成了類或者物件。

注意:在hql中關鍵字不區分大小寫,但是屬性和類名區分大小寫

static void query(string name)

}finally

}

qbc(query by criteria)

這種方式比較物件導向方式,重點是有三個描述條件的物件:restrictions,order,projections。使用qbc查詢,一般需要以下步驟:

1 使用session例項的createcriteria()方法建立criteria物件;

2 使用工具類restrictions的方法為criteria物件設定查詢條件;

3 order工具類的方法設定排序方式;

4 projections工具類的方法進行統計和分組;

3 使用criteria物件的list()方法進行查詢並返回結果;

static void cri(string name,string password)

}finally

}

sql

就是採用原生sql進行查詢

static list sql()
query.iterator的n+1查詢(基於一的hql,多見於一對多、多對多的關聯對映)

n + 1問題,在預設情況下,使用query.iterate查詢,有可以能出現n+1問題;所謂的n+1是在查詢的時候發出了n+1條sql語句

list和iterate的區別?
query q=session.createquery(「from userinfo」);

iteratorlist=q.iterate();

while(list.hasnext())

避免n+1查詢解決方法:
1 可以將fetch抓取資料的屬性改為「join」,來避免n+1次的查詢;

2 使用二級快取

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...

hibernate查詢方式比較

推舉利用gethibernatetemplate executewithnativesession sqlquery方法。下面我用自己寫的 為例,進行說明。下面是dao層的我寫的一段 供參考 查詢卡等級 author yangliang created 2011 11 24 下午05 31 33 s...

十 Hibernate 查詢方式

hibernate 查詢方式簡介 1,導航物件圖查詢方式 2,oid 查詢方式 3,本地 sql 查詢方式 4,hql 查詢方式 5,qbc 查詢方式 query by criteria 導航物件圖查詢方式 根據已經載入的物件導航到其他物件 例如 在前面的各種對映關係中,實體類包含對其他類物件的引用...