HQL定义
Hibernate Query Language
HQL面向对象的查询语言
HQL查询的是映射配置的持久化类及其属性
SQL查询的是数据库表
HQL语句形式
select....from......where... group by.... having.... order by...
初学HQL注意的问题
1.HQL是面向对象的查询语言,对JAVA类和属性大小写敏感
2.HQL对关键字不区分大小写,习惯小写
Query接口简介
1.Query接口定义有执行查询的方法
通过HQL语句和配置信息解析成SQL语句
2.Query接口支持方法链编程风格,用于查询参数的动态设置
Query实例创建
1.Session的createQuery()方法创建Query实例
Query执行查询
1.Query接口的list()方法执行HQL查询
2.LIST集合存放符合查询条件的持久化对象
from子句
from子句中别名可以不用AS
select子句
1. select子句中未指定返回数据类型,默认的返回类型Object[];
如果只查询一个属性,返回Object
2.select子句中使用new list指定,返回类型为List
3.select子句中使用new map 指定,以key值为索引,字符串类型
4.以自定义类型返回
持久化类中定义对应的构造器
在select子句中调用构造器
比较运算
判断是否为空,HQL语句可以用等于号来判断
范围运算
not in (值1,值2)
not between 。。and 。。
通配符查询
String hql="from Customer c where c.name like '张_'"
集合运算
is 【not】 empty集合【不】为空,不包含任何元素,相当于sql中的exists
menber of 元素属于集合,相当于sql中的in