更新時間:2024-01-22 來源:黑馬程序員 瀏覽量:
HQL(Hibernate Query Language)是Hibernate查詢語言的簡稱,它是一種面向?qū)ο蟮牟樵冋Z言,與SQL查詢語言有些類似,但它使用的是類、對象和屬性的概念,而沒有表和字段的概念。
HQL查詢與SQL查詢相比,具有以下優(yōu)點。
·直接針對實體類和屬性進行查詢,不用再編寫繁瑣的SQL語句。
·查詢結(jié)果直接保存在List集合中,不用再次封裝。
·針對不同的數(shù)據(jù)庫會自動生成不同的SQL語句。
在Hibernate提供的幾種檢索方式中,HQL是官方推薦的查詢語言,也是使用最頻繁的一種檢索方式,其具有以下主要功能。
·在查詢語句中設定各種查詢條件。
·支持投影查詢,即僅檢索出對象的部分屬性。
·提供內(nèi)置聚集函數(shù),如sum()、min()和max()。
·支持分組查詢,允許使用group by和having關鍵字。
·支持分頁查詢。
·支持子查詢,即嵌套查詢。
·支持動態(tài)綁定參數(shù)。
HQL的語法格式與SQL非常相似,并且在Hibernate中專門為HQL提供了一個Query查詢接口執(zhí)行各種復雜的查詢語句。HQL的完整語法格式如下所示:
[select/update/delete...] from...[where...] [group by...] [having...] [order by...] [asc/desc]
從上述語法格式中可以看出,HQL查詢與SQL查詢非常類似。通常情況下,當檢索表中的所有數(shù)據(jù)時,查詢語句中可以省略select關鍵字,其示例如下所示:
String hql="from User";
需要注意的是,上述語句中User表示類名,而不是表名,因此需要區(qū)分大小寫,而form關鍵字不區(qū)分大小寫。