HQL(Hibernate Query Language)
HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在
Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式. 它有如下功能:- 在查询语句中设定各种查询条件
支持投影查询, 即仅检索出对象的部分属性
支持分页查询
- 支持连接查询
支持分组查询, 允许使用 HAVING 和 GROUP BY 关键字
提供内置聚集函数, 如 sum(), min() 和 max()
能够调用 用户定义的 SQL 函数或标准的 SQL 函数
支持子查询
- 支持动态绑定参数
OID 检索方式
按照对象的 OID 来检索对象
QBC 检索方式
使用 QBC(Query By Criteria) API 来检索对象. 这种 API 封装了基于字符串形式的查询语句, 提供了更加面向对象的查询接口.
简单的查询
使用别名
对查询结果排序
分页查询
分页查询:
setFirstResult(int firstResult): 设定从哪一个对象开始检索, 参数 firstResult
表示这个对象在查询结果中的索引位置, 索引位置的起始值为 0. 默认情况下, Query 从查询结果中的第一个对象开始检索- setMaxResult(int maxResults): 设定一次最多检索出的对象的数目. 在默认情况下, Query 和
Criteria 接口检索出查询结果中所有的对象
检索单个对象
绑定参数的形式,按参数名称绑定
绑定参数的形式,按参数位置绑定
在映射文件中定义命名查询语句
hibernate检索方式
HQL和QBC支持的各种运算
HQL和QBC支持的各种运算
迫切左外连接
HQL测试
单表
junit测试结果:
顺序查询
一对多
等值连接
迫切内连接
左外连接
迫切左外连接
在页面上显示cname,sname
采用迫切内连接可以做
迫切左外连接
多对多
总结
* 页面上数据的字段和数据库中字段差不多
这个时候,采用迫切连接 结构比较好
* 如果页面上的字段很少,要按照需求加载数据,采用带构造函数的select查询