Hibernate Query Language(HQL)简单认识和学习

Hibernate Query Language(HQL)提供了十分强大的功能,但是HQL是针对持久化对象,用来取得对象,而不是进行update、delete和insert等操作。而且HQL是完全面向对象的,具备继承、多态和关联等特性。
1、from子句
from 子句是最简单的HQL语句,例如:from Stuinfo,也可以写成select s from Stuinfo s,结果返回Stuinfo类的所有实例。

2、select子句
有时候并不需要得到对象的所有属性,这时就可以使用select子句进行属性查询,例如:select s.name from Stuinfo s。
如果要查询两个以上的属性,查询结果会以数组的方式返回,如下所示:

Query query=session.createQuery("select s.name,s.sex from Stuinfo as s");
List list=query.list();
for(int i=0;i<list.size();i++){
	Object obj[]=(Object[])list.get(i);
	System.out.println(obj[0]+"的性别是:"+obj[1]);

3、统计函数查询
经常使用的函数如下所示:

  1. count():统计记录条数
  2. min():求最小值。
  3. max():求最大值。
  4. sum():求和。
  5. avg():求平均值。

例如要取得Stuinfo实例的数量,HQL如下所示:

select count(*) from Stuinfo

取得平均年龄的HQL如下:

select avg(s.age) from Stuinfo as s

可以使用distinct去除重复数据

select distinct s.age from Stuinfo as s

4、where子句
HQL通过where子句实现子查询。例如返回所有名字为zzf的Stuinfo实例:

from Stuinfo as s where s.name='zzf'

where子句中允许出现的表达式包括了SQL中可以使用的大多数表达式:
(1)、数学操作:+、-、*、/。
(2)、关系比较操作:=、>=、<=、!=、like。
(3)、逻辑操作:and、or、not。
(4)、字符串连接:||
(5)、SQL标量函数:例如upper()和lower()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值