Hibernate查询语句HQL
2017-03-08 22:01
323 查看
HQL
Hibernate Query Language, Hibernate查询语言HQL是面向对象的查询语言
HQL映射配置的持久化类及其属性;SQL数据库表
HQL提供了丰富灵活的查询特性,Hibernate官方推荐查询方式
HQL语句形式: select…from…where…group by…having…order by…
HQL是面向对象的查询语言,对Java类与属性大小写敏感
HQL对关键字不区分大小写
org.hibernate.Query接口
接口定义有执行查询的方法
Query接口支持方法链编程(调用方法后,返回的结果还是调用方法的这个对象,多用于查询参数的动态设置)风格,使得程序代码更为简洁
Query实例的创建
Session的createQuery()方法创建Query实例
createQuery方法包含一个HQL语句参数,createQuery(hql)
执行查询
Query接口的list()方法执行HQL查询
list()方法返回结果数据类型为java.util.List,List集合中存放符合查询条件的持久化对象
查询子句
检索对象——from子句
HQL语句的最简形式from指定了HQL语句查询主题——持久化类及其属性
from子句中持久化类的引用:
不需要引入持久化类的全限定名,直接引入类名(hibernate会根据映射配置文件信息自动引入)
auto-import(自动引入)缺省情况
from子句中别名的应用
为被查询的类指定别名
在HQL语句其他部分通过别名引用该类
别名的命名习惯:别名多与持久化类名相同,小写;如:”from Seller as seller”
选择——select子句
以Object[]形式返回选择的属性(默认返回格式),如果返回的信息只有一个属性,那么返回的就是List,而不是List限制——where子句
比较运算=、<>、<、>、>=、<=
null值判断—is [not] null
范围运算
[not] in (列表)
[not] between 值1 and 值2
字符串模式匹配
like关键字(模糊匹配)
通配符%(任意个字符),_(一个字符)
逻辑运算
and(逻辑与)、or(逻辑或)
not(逻辑非)
集合运算
is [not] empty 集合[不]为空,不包含任何元素
member of 元素属于集合
empty -> exists, member of -> in
String hql = "from Order order where order.orderItems is not empty";
在HQL中使用+-*/运算符
HQL语句中可以使用+-*/四则运算
四则运算可以再在where子句和select子句中使用
查询单个对象(uniqueResult方法)
Query接口的uniqueResult方法
where子句条件的设置(如果返回的对象超过一个,会抛出异常)
String hql = "from Seller seller where seller.id='1'" Query query = session.createQuery(hql); Seller seller = (Seller)query.uniqueResult();
排序——order by子句
升序:asc(默认升序),降序:desc多个排序规则:
String hql = "from Seller seller order by seller.gender asc, seller.id desc" Query query = session.createQuery(hql); List sellers = query.list();
相关文章推荐
- Hibernate常用查询语句(hql)
- Hibernate的HQL查询语句对比Sql语句学习
- hibernate--HQL查询语句(2)
- hibernate查询语句--HQL
- hibernate--HQL查询语句(二)-----分组、排序
- Hibernate的HQL查询语句对比Sql语句学习
- hibernate查询语句---HQL
- hibernate--HQL查询语句(2)
- hibernate--HQL查询语句(1)
- Hibernate查询语句+HQL
- hibernate--HQL查询语句(一)
- hibernate--HQL查询语句-----分组、排序--多条件排序
- Hibernate HQL查询语句总结
- hibernate--HQL查询语句(1)
- hibernate--HQL查询语句(1)
- hibernate查询语句--HQL
- 解决Spring和Hibernate整合时HQL查询语句乱码问题
- 在hibernate中使用HQL语句和QBC两种方法进行查询
- Hibernate 查询语句HQL基本语法
- hibernate里使用hql语句处理多表查询