Hibernate查询方式之:HQL查询(需要使用的类是:Query)

Hibernate查询方式之:HQL查询(需要使用的类是:Query)

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账号...

(0)


相关推荐

  • AV有马赛克吗_视频某个地方加马赛克

    AV有马赛克吗_视频某个地方加马赛克程序员的成长之路互联网/程序员/技术/资料共享关注阅读本文大概需要2.8分钟。来自:网络,侵删近日一位43岁的岛国男性,利用AI技术去除18禁视频马赛克,到处贩售。在岛国舆论一片哗然…

  • Matlab中axis函数使用

    Matlab中axis函数使用目录一.语法1.输入参数2.输出参数二.说明三.示例1.设置坐标轴范围2.使用半自动坐标轴范围3.设置多个坐标轴的坐标轴范围4.显示绘图而不显示坐标区背景5.使用紧凑的坐标轴范围并返回值6.更改坐标系的方向7.添加新绘图时保留当前的坐标轴范围axis函数是设置坐标轴范围和纵横比。一.语法axis(limits)axisstyleaxismodeaxisydirectionaxisvisibility

  • 权限持久化—映像劫持检测(Shift后门)[通俗易懂]

    权限持久化—映像劫持检测(Shift后门)[通俗易懂]映像劫持说白了还是利用了windows的一些特性,当你点击可执行文件进行执行时,系统并不会直接就对可执行文件进行执行,而是首先对注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ImageFileExecutionOptions,这个路径下面如果存在和该程序名称完全相同的子键,就查询对应子健中包含的“Dubugger”键值名,并用其指定的程序路径来代替原始的程序,之后执行的是遭到“劫持”的虚假程序。比较常用的是.

  • 缺陷报告编写规范[通俗易懂]

    缺陷报告编写规范[通俗易懂]引言 软件缺陷定义  软件缺陷(Defect):又叫做Bug。即为计算机软件、程序、web应用中存在的某种不符合正常运行的功能问题。也是错误、隐藏,让用户不满意的功能缺陷。从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。 缺陷报告定义  缺陷报告把测试的过程和结果写成文档,并对发现的问题和缺陷进行分析,为…

  • 安卓传感器开发_android传感器开发

    安卓传感器开发_android传感器开发昨天利用Vibrator将手机改造成振动器,女票大人很满意,今天再接再厉,研究一下Android传感器如何开发……主要涉及到三个类,Sensor,SensorManager,SensorEventListener。看名字就知道大概意思了,Sensor传感器,SensorManager传感器管理者,SensorEventListener传感器事件监听。SensorManager开发者文档给的类简

  • ubuntu pycharm激活 3月最新注册码「建议收藏」

    ubuntu pycharm激活 3月最新注册码,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号