1、 什么是hql
HQL(Hibernate Query Language)是hibernate专门用于查询数据的语句,
有别于SQL,HQL 更接近于面向对象的思维方式。
2 、hql和sql区别/异同
hql | sql |
---|---|
类名/属性 | 表名/列名 |
区分大小写,关键字不区分大小写 | 不区分大小写 |
?,从下标0开始计算位置(hibernate5之后不支持) | ?,从顺序1开始计算位置 |
:命名参数 | 不支持:命名参数 |
面向对象的查询语言 | 面向结构查询语言 |
注意:QuerySyntaxException:book is not mapped
3、hibernate结果集的处理五种情况
- Ojbect —>查全表字段
- Map —>new Map 调函数
- Ojbect[] —>某几个列字段
- String —>(基本数据类型)
- 构造方法 —>查几列
4. hql中使用占位符
-
?占位符
从下标0开始计算位置
hibernate5之后不再支持?占位符 -
:命名参数
5、hibernate分页(用到聚合函数)
- 聚合函数
sum
avg
max
min
count - hql分页
int page = 2;// 页码:page
int row = 10;// 每页行数:rows
query.setFirstResult((page - 1) * row);// 设置起始记录下标
query.setMaxResults(row);// 设置返回的最大结果集