HQL查询语句精要
需积分: 9 199 浏览量
更新于2024-09-14
收藏 47KB DOC 举报
“hql精点查询语句.doc”
在文档“hql精点查询语句.doc”中,主要探讨了Hibernate Query Language(HQL)的一些关键查询语句和功能。HQL是Hibernate提供的面向对象的查询语言,它允许开发者以类和属性的名字而不是数据库表和列来编写查询,使得SQL操作更加面向对象。
1. from子句
`from Person` 这个语句表示从`Person`持久化类中选择所有的实例。这是HQL的基本查询结构,用于指定要查询的对象。
2. select子句
- `select p.name from Person as p` 选择`Person`类中的`name`属性。
- `select p.name.firstName from Person as p` 获取`Person`类中嵌套属性`name.firstName`。
- `select new list(p.name, p.address) from Person as p` 创建一个包含`name`和`address`的新列表。
- `select new ClassTest(p.name, p.address) from Person as p` 如果`ClassTest`是可构造的,创建一个新的`ClassTest`实例,传入`name`和`address`。
- `select p.name as personName from Person as p` 使用别名`personName`引用`name`属性。
- `select new map(p.name as personName) from Person as p` 创建一个Map,其中键是`personName`,值是`name`。
3. 统计函数查询
- `count(*)` 统计查询结果的记录数,如`select count(*) from Student`计算`Student`类的实例数量。
- `min()` 求最小值,例如`select min(p.age) from Person as p`找出`Person`的最小年龄。
- `max()` 求最大值,如`select max(p.age) from Person as p`找到`Person`的最大年龄。
- `sum()` 求和,例如`select sum(p.age) from Person as p`计算所有`Person`的年龄之和。
- `avg()` 求平均值,如`select avg(s.age) from Student as s`获取`Student`的平均年龄。
4. 字符串处理
- `upper()` 方法可以将字符串转换为大写,如`select upper(s.name) from Student as s`。
5. 去除重复行
`distinct` 关键字用于去除查询结果中的重复项,如`select distinct s.age from Student as s`。
6. 多态查询
- `from Person` 和 `from java.lang.Object o` 表示可以从`Person`类或任何对象类型进行查询,体现HQL的多态特性。
- `from Named as n` 可能是针对具有特定接口或注解的类进行查询。
7. where子句
- `where name like "tom%"` 用于设置查询条件,这里查找名字以"tom"开头的所有`Person`实例。
- 更复杂的条件,如`from Cat cat where cat.mate.name like "kit%"`,可以在关联的对象上设置过滤条件,如`Cat`的伴侣(mate)名字以"kit"开头。
通过这些HQL查询语句,开发者可以高效、灵活地对对象数据进行检索、统计和操作,实现了与数据库的无缝对接,简化了数据库操作。理解并熟练掌握这些语句对于进行基于Hibernate的开发至关重要。
2011-03-09 上传
2008-03-10 上传
2024-10-31 上传
2024-11-12 上传
2024-10-31 上传
2024-10-25 上传
2024-10-25 上传
2024-11-05 上传
奋斗者ing
- 粉丝: 79
- 资源: 53
最新资源
- PortafolioAdsi:工业生物技术中心 ADSI 案例研究项目 - Palmira。 软件开发的整个过程将展示实施 Scrum 框架,以同样的方式利用 JAVA、JPA、Mysql、Html5、CSS 等技术
- ISO15118是欧洲的电动汽车充电协议标准,这是第一部分,通用信息及用例定义
- 测试
- teamtool-spring:团队工具(Spring MVC)
- Learners-Academy
- 为桌面和Web应用程序配置Log4Net
- be-kanBAO:后端做看报
- react-redux-flask-mongodb:带有Mongodb的Flask JWT后端和带有Material UI的ReactRedux前端的入门应用程序
- 新的多站点DLL或如何在根目录中开发.NET项目
- fakhrusy.com:我的个人网站
- image-mosaic
- pyg_lib-0.3.0+pt20-cp310-cp310-macosx_11_0_x86_64whl.zip
- N10SG开发教学视频.zip
- Toolint-tests-Empty-TC-Add-Tools-2021-04-07T15-40-16.889Z:为工具链创建
- 122页中国移动互联网2019半年大报告-QuestMobile-2019.7.rar
- practice:练习