博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate查询语言
阅读量:7066 次
发布时间:2019-06-28

本文共 1142 字,大约阅读时间需要 3 分钟。

HQL(Hibernate Query Language)查询语言是完全面向对象的查询语言,它提供了更加面向对象的封装,它可以理解如多态、继承和关联的概念。HQL看上去和SQL语句相似,但它却提供了更加强大的查询功能。

1. 了解HQL语言

HQL语句与SQL语句是相似的,其基本的使用习惯也与SQL相同。由于HQL是面向对象的查询语言,说以它需要从目标对象中查询信息并返回匹配单个实体对象或多个实体对象的集合,而SQL语句是从数据库表中查找指定的信息,返回的是单条信息或多条信息的集合。

注意:HQL语句是区分大小写的,虽然SQL语句并不区分大小写。因为HQL是面向对象的查询语句,它的查询目标是实体对象,也就是java类,java类是区分大小写的,所以HQL也是区分大小写的。

HQL的基本语法如下:

select "对象.属性名"from "对象"where "过滤条件"group by "对象.属性名" having "分组条件"order by "对象.属性名"

例1.1 在实际应用中的HQL语句。

select * from Employee emp where emp.flag="1"

该语句等价于:

from Employee emp where emp.flag="1"

其中Employee为实体对象。Hibernate在3.0版本以后可以使用HQL执行update和delete的操作,但是并不推荐使用这种方式。

2. 实体对象查询

在HQL语句中,可以通过from字句对实体对象进行直接查询。

例2.1 通过from字句查询实体。

from Person

在大多数情况下,最好为查询的实体对象指定一个别名,方便在查询语句的其它地方引用实体对象。别名的命名方法如下:

from Person per

技巧:别名的首字母最好小写,这是HQL语句的规范写法,与Java中变量的命名规则是一致的,避免与语句中的实体对象混淆。

上面的HQL语句将查询数据库中实体对象Person所对应的所有数据,并以封装好的Person对象的集合形式返回。

例2.2 通过from字句查询指定字段数据。

select Person(id,name) from Person per

这种查询方式,通过new关键字对实体对象动态实例化,将指定的实体对象属性进行重新封装,既不失去数据的封装性,又可提高查询的效率。

注意:在上面的语句中最好不要使用下面的语句进行查询,例如:

select per.id,per.name from Person per

因为此语句返回的并不是原有的对象实体状态,而是一个Object类型的数组,它破坏了数据原有的封装性。

更详细的内容参见下面的链接:

转载地址:http://mwxll.baihongyu.com/

你可能感兴趣的文章
【连载】物联网全栈教程-从云端到设备(十二)---最简单的单片机上云方法!...
查看>>
如何自学编程?学习方法在这里!
查看>>
springboot web应用 jar 启动 ant脚本
查看>>
SolrCould 集群搭建
查看>>
IDEA Git版本回滚提交方式
查看>>
tomcat中同时启动两个项目出现内存不足的错误提示解决办法
查看>>
ssm框架开发过程中遇到的一错误以及解决问题提示
查看>>
树的遍历
查看>>
Akka2使用探索6(Futures)——实现并发和异步
查看>>
【持续更新】jQuery 实用技巧
查看>>
大象也能起舞,Citrix X1计划让你对笔记本电脑say good bye
查看>>
Nginx 之常见报错问题解决
查看>>
linux 防爆破方法
查看>>
2、通过ipmitool工具修改IPMI的WEB密码
查看>>
云盘关闭,教你用蒲公英搭建私有云
查看>>
Spring Cloud 入门教程5、服务容错监控:Hystrix Dashboard
查看>>
很好的学习平台
查看>>
hibernate学习笔记3
查看>>
SQL Server 2005 日常运维检查操作手册
查看>>
利用jquery和jsonp来获取跨站数据,并实现cookie共享
查看>>