1. OID檢索
2. HQL檢索
3. QBC檢索
4. 本地的SQL檢索
下面一一介紹一下:
OID索引:這個比較簡單,session.get()、session.load()
-----------------------------
HQL索引:使用面向對象的HQL語言進行查詢
HQL是一種面向對象的查詢語言,和SQL查詢語言有些類似
在Hibernate提供的各種檢索方式中,HQL是使用最廣的一種檢索方式
Query接口是HQL查詢接口,提供各種查詢功能
特點:
* 在查詢語句中設定各種條件
* 支持投影
* 支持分頁
* 支持連接查詢
* 支持分組查詢
* 支持內聚函數的查詢
* 能夠調用用戶自己定義的SQL函數和標準SQL函數
* 支持子查詢
* 支持動態綁定參數
HQL實體查詢
注*:
1. HQL子句本身大小寫無關,但習慣將關鍵字小寫
2. where子句中給出的是類的屬性名而不是數據庫表字段名
3. HQL子句本身大小寫無關,但其中出現的類名和屬性名必須區分大小寫
4. HQL delete/update對緩存策略的影響,delete/update子句極有可能造成緩存同步上的障礙
where子句:HQL支持的各種運算符
比較運算符 =、<>、>=、<=、>、<、is null、is not null
範圍運算符 in、not in、between…and、not between…and、
字符串模式匹配運算符 like
邏輯運算符 and、or、not
使用別名查詢:as關鍵字用來指定別名,as關鍵字也可以省略
支持多態查詢:查詢出當前類以及所有子類的實例
檢索單個對象:
list():返回List類型的查詢結果,返回所有滿足條件的對象
uniqueResult():返回單個對象
order by 子句
參數綁定
提供了各種參數的綁定方法:setString()、setInteger()、setBinary()、setBoolean()、setDate()、setTime()、setText()
HQL三個特殊的綁定參數方法
setParamter()綁定任意類型的參數
setProperties()用於把命名參數與一個對象的屬性值綁定的查詢
setEntity()把參數與持久化類的實例綁定
按參數位置綁定
按參數名稱綁定
實體更新
實體刪除