hibernate查询方式之:HQL查询方式:
HQL语句正对的是实体类的名称和实体类的属性进行操作
1.查询所有
格式:from 实体类名称
Query query = session.createQuery(“from User”);
List<User> list = query.list();
for(User u :list){
System.out.println(u);
}
2.条件查询
(1)from 实体类名称 where 实体类的属性名称=?;
Query query = session .createQuery(“from User u where u.name=? and u.id=?”);
//给?赋值,一般从0开始
query.setParameter(0,”kevin”);
query.setParameter(1,12);//表示name=kevin;id=12的数据信息
List<User> list = query.list();
(2)模糊查询:
格式:from 实体类名称 where 实体类属性名称 like ? ;
Query query = session.createQuery(“from User u where u.name like ?);
query.setParameter(0,k_);//以k开头,并且只有两个字母的数据信息
//query.setParameter(0,”%k%”);
List<User> list = query.list();
3.排序查询
使用关键字 order by
格式:from 实体类名称 order by 实体类属性名称 asc/desc //asc:升序 ;desc:降序
Query query = session.createQuery(“from User u order by u.id asc”);
List<User> list = query.list();
4.分页查询:
在mysql中分页查询方式:
select * from t_user limit 0,3;//从0开始,每页显示数据为3条
在hibernate中如何使用分页查询?
//先查询所有
Query query = session.createQuery(“from User”);
//设置开始查询位置
query.setFirstResult(0);
//设置每页查询的数据
query.setMaxResult(3);
List<User> list = query.list();
5.投影查询:就是查询部分,所有在泛型中要写Object类型
格式:select 实体类属性名称 from 实体类名称;
注意:不能使用* ;不支持这个*写法;
Query query = session.createQuery(“select u.name from User u”);
List<Object> list = query.list():
6.聚合函数查询
count avg sum max min
格式:
select 聚合函数 from 实体类名称
Query query = session.createQuery(“select count(*) from User”);
//调用的是uniquenResult()方法
//返回的是Object
//要转成成int类型,先强制转换成Long类型,在通过intValue()方法转换成Int方法
Object count = query.uniquenResult();
Long num = (Long)count
int number = num.intValue();
System.out.println(number);
补充:
在mysql中聚合函数的使用:
1) COUNT
SELECT COUNT(*) FROM emp;
–> 计算emp表中所有列都不为NULL的记录的行数
SELECT COUNT(comm) FROM emp;
–> 云计算emp表中comm列不为NULL的记录的行数
如果行数里面的内容全部为空,那么不计数了。
2) MAX
SELECT MAX(sal) FROM emp;
–> 查询最高工资
3) MIN
SELECT MIN(sal) FROM emp;
–> 查询最低工资
4) SUM
SELECT SUM(sal) FROM emp;
–> 查询工资合
5) AVG
SELECT AVG(sal) FROM emp;
–> 查询平均工资
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100808.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...