【Hibernate框架开发之八】Hibernate 查询语言Query Language(HQL)
来源:互联网 发布:淘宝店铺品牌授权 编辑:程序博客网 时间:2024/05/16 08:12
本站文章均为 李华明Himi 原创,转载务必在明显处注明:
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/hibernate/824.html
☞ 点击订阅 ☜ 本博客最新动态!及时将最新博文通知您!
生成一条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框架开发之八】Hibernate 查询语言Query Language(HQL)
- hibernate参考手册之---Hibernate查询语言(Query Language), 即HQL
- Hibernate查询语言(Query Language), 即HQL
- Hibernate Query Language(HQL)
- HQL(Hibernate Query Language)
- HQL(Hibernate Query Language)
- Hibernate Query Language (HQL)
- HQL(Hibernate Query Language)
- Hibernate查询(Query Language,hql,ejbql,nativeql,qbc,qbe)
- HQL(Hibernate Query Language)使用详解
- hibernate-HQL(query language)-16
- About Hibernate Query Language(HQL)
- Hibernate检索方式之HQL(Hibernate Query Language)
- Hibernate Query Language查询
- Hibernate Query Language查询
- Hibernate Query Language查询
- hibernate高级查询之 HQL(Hibernate Query Language)和QBC(Query By Criteria)的分析与研究
- 关于HQL(Hibernate Query Language)的查询方法
- 分割流和合并流的应用
- 【Hibernate框架开发之七】Hibernate使用Annotation中各种关系映射的CRUD(增删改查)&&集合映射&&继承映射
- 模板引擎 Velocity :动态生成页面
- Python xml属性/节点/文本的增删改[xml.etree.ElementTree]
- Vmware 安装 RedFlag-6.x For Linux
- 【Hibernate框架开发之八】Hibernate 查询语言Query Language(HQL)
- Problem-1002 : A + B Problem II
- 【Hibernate框架开发之九】Hibernate 性能优化笔记!(遍历、一级/二级/查询/缓存、乐观悲观锁等优化算法)
- NDK do not find the standard C++ libraries
- PowerDesigner双向工程
- Tutorial 4: 3D Spaces(Directx手册)
- POJ2070浅析------Filling Out the Team
- linux kernel内存管理自低向上组成图
- 【Apache Mina2.0开发之一】搭建Apache Mina框架并实现Server与Client端的简单消息传递!