【Hibernate框架開發之八】Hibernate 查詢語言Query Language(HQL)
生成一條HQL查詢語句 Query, 使用Session的createQuery("hql語句")生成Query
HQL語句:
1. “from className”
class是類名;Hibernate會自動到資料庫中找對應生成的表;
2.“from className cn where cn.name > 'xx'”
cn 是className的別名, 'xx'表示條件
3. "from ClassName cn order by cn.name desc"
按照className的名字倒序排列
4. "select distinct cn from ClassName cn order by cn.name desc"
互相之間不會重複的物件(主鍵不同)的按照倒序排列
5. "from ClassName cn where cn.id > :min and cn.id< :max"
然後設定其Parameter(min和max) :
query.setParameter("min", 2); query.setParameter("max", 8);
query.setInteger("min", 2); query.setInteger("max", 8);
(兩段實現相同功能,使用setParameter則自動轉換型別,下面屬於手動轉換型別);
6."select cn.id,cn.name from ClassName cn order by cn.name desc"
取出特定的兩個欄位 id 和 name
7. "from ClassName cn where cn.group.id =1 "
找到在ClassName生成的表中中的group物件的id為1的那個ClassName物件
8. "select cn.id,g.name from ClassName cn Join cn.group g"
對映ClassName的cn.id對應ClassName中group物件裡的name屬性;join 建立導航關係
9. "select count(*) from ClassName cn"
使用聚合函式, 注意count(*)返回Long型別;
10. "select max(cn.id), min(cn.id), avg(cn.id), sum(cn.id) from ClassName cn"
聚合函式
11. "from ClassName cn where cn.id between 3 and 7"
兩者之間
12. "from ClassName cn where cn.id in (3,4,5)"
是否在其中
13. "from ClassName cn where cn.name is not null"
不為null
14. "from ClassName cn where cn.set is empty"
判斷集合屬性是否為空
is not empty 測試某一個屬性是否為空
15. "from ClassName cn where cn.name like '%4'"
"from ClassName cn where cn.name like '_4'"
%: 表示0個或者多個
_:表示一個
16."select lower(cn.name),lower(cn.name),upper(cn.name),trim(cn.name),concat(cn.name),length(cn.name) from ClassName cn"
一些常用函式
17. "select abs(cn.id),sqrt(cn.id) from ClassName cn"
一些函式
18. "select current_date,current_time,current_timestamp,t.id from ClassName t"
時間日期
19. "from ClassName cn where cn.createDate < :date"
日期的比較
20. "select cn.name,count(*) from ClassName cn group by cn.name"
.分組查詢
21. "select cn.name,count(*) from ClassName cn group by cn.name having count(*) >= 2"
.
22. "from ClassName cn where cn.id < (select avg(cn.id) from ClassName cn)"
哪個id值<平均值
23. "from ClassName cn where cn.id < ALL(select cn.id from ClassName cn where mod(cn.id ,2) = 0)"
id 小於ALL(2,4,6,8)所有值 ps..小於最小值 = select min
24. "update ClassName cn set cn.name = upper(cn.name)"
更新
Query函式:
1. Query 中 有個 list()函式,直接獲取其資料返回一個list物件;
2. Query 中uniqueResult()函式,得到唯一返回的值;
3. executeUpdate() 更新
相關文章
- hibernate中hql查詢
- Hibernate hql 多表查詢
- Hibernate 之強大的HQL查詢
- hibernate的hql查詢語句總結
- Hibernate——Query查詢
- hibernate 之 HQL語句總結【轉】
- SQL(Structured Query Language,結構化查詢語言)SQLStruct
- 如何使用Hibernate/JPA的JPQL/HQL查詢提取?
- Hibernate通常是三種:hql查詢,QBC查詢和QBE查詢:
- Hibernate 查詢語句
- Hibernate 框架的查詢方式框架
- Hibernate--HQL基礎語法
- Hibernate-hql語法總結.
- 391、Java框架46 -【Hibernate - 查詢HQL、查詢Criteria、查詢標準SQL】 2020.10.19Java框架SQL
- Hibernate 查詢
- 資料查詢語句:DQL(Data Query Language)
- Hql查詢語句
- DQL(Date Query Language)資料庫查詢語句資料庫
- Hibernate查詢方式
- 自主開發的Hibernate框架框架
- 使用hibernate的query查詢時覆蓋值的問題
- hibernate(七) hibernate中查詢方式詳解
- Hibernate之Query介面的uniqueResult()方法
- hibernate異常之--count查詢異常
- Hibernate查詢自動更新
- Hibernate連線查詢join
- hibernate 動態查詢(DetachedCriteria )
- hibernate批量查詢問題
- Hibernate_HQL--實體、屬性查詢,引數繫結,引用查詢(隨時溫習一遍)
- weblogic org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.internal.ast.HqlTokWebExceptionAST
- SSH框架之Hibernate的查詢詳解(1)、debug斷點除錯框架斷點除錯
- Hibernate-ORM:13.Hibernate中的連線查詢ORM
- 關於Hibernate和hql語句的相關知識點
- hibernate的三種查詢方式
- hibernate查詢的方式 都有哪些
- Hibernate的查詢方式與策略
- hibernate的native sql查詢SQL
- Hibernate的Criteria查詢問題。