1. 程式人生 > >hibernate資料查詢的幾種方式

hibernate資料查詢的幾種方式

1.使用主鍵id載入物件(load(),get());

2.通過物件導航,比如通過stu.getTeam()得到team的例項;

3 使用hql;

4使用qbc(query by criteria)

5直接使用sql語句取得記錄集;

一般都使用後面三種方式.

注意.hql是面向物件的查詢.語法和sql是基本一樣的.不區分大小寫的,但是注意的是對與物件.必須遵循物件的大小寫.因為hql是對像查詢..同時我們必須清楚.hql只能取得物件,而不支援uid(update,insert.delete)

...........................................(具體的講解詳見查考書)

小結:

hql功能很強大,適合各種情況,但是動態條件查詢構造起來很不方便.

criteria 最適合動態查詢,但不太適合統計查詢,qbe還不夠強大.只適合簡單的查詢.

nativesql可以實現特定的資料庫的sql.但是可移植性並不好.

針對web應用來說,大部分常規查詢都是動態條件查詢,所以首先criteria,並且h 3提供的detachedcriteria,可以在web層構造好detachedcriteria再進入session執行查詢.但是涉及到統計查詢和非常複雜的關聯查詢.criteria就無能為力了.這種情況下選擇使用hql.最後如果涉及到使用某些資料庫的特性的時候,就只有選擇nativesql了.

hql常用來進行實體檢索.這個時候要注意返回的list中的元素是實體還是實體陣列.如果hql進行實體屬性查詢,當查詢兩個以上的屬性時,list中的元素就是屬性陣列了.

qbc最大的用途在與動態查詢.它不會忽略配置檔案中的預先抓取策略.

使用本地sql檢索必須檢索物件的所有屬性.