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;

  –> 查询平均工资

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100808.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • murmurhash java_默默hash(MurmurHash)

    murmurhash java_默默hash(MurmurHash)MurmurHash 可以将一个字符串 hash 出一个碰撞率极低的 long 型数值 且效率很高 packagecom trs util importjava nio ByteBuffer importjava nio ByteOrder 根据字符串生成 long 型数据 id authoryush 2018 年 11 月 6 日上午 11 02 00 publicclassA

    2025年10月14日
    4
  • datagrip激活码2021(JetBrains全家桶)

    (datagrip激活码2021)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0E14HXZ4QL-eyJsa…

    2022年3月28日
    211
  • linux 文档编辑命令_vim编辑器常用命令

    linux 文档编辑命令_vim编辑器常用命令Linux文档编辑命令1.vi或vim命令1.基本操作1.vim文件名:进入一般模式(不能输入)2.按下i从一般模式,进入到插入模式3.按下esc从插入模式,退出到一般模式4.在一般模式下,输入:wq,退出编辑。2.vi基本概念3.常用命令2.管道linux提供管道符号“|”作用是“命令1”的输出内容,将作为“命令2”…

    2022年9月27日
    3
  • java flowable_Flowable流程引擎入门[通俗易懂]

    java flowable_Flowable流程引擎入门[通俗易懂]Flowable是一个流行的轻量级的采用Java开发的业务流程引擎。通过Flowable流程引擎,我们可以部署BPMN2.0的流程定义(一般为XML文件),通过流程定义创建流程实例,查询和访问流程相关的实例与数据,等等。Flowable可以灵活地添加到我们的服务、应用、架构中,可以通过引入Flowablejar包,或者直接使用Flowable的RestAPI来进行业务流程引擎的操作。Flowa…

    2022年10月20日
    2
  • 正态qq图怎么判断分布_怎么判断是不是QQ小号

    正态qq图怎么判断分布_怎么判断是不是QQ小号一、正态QQ图的原理QQ图通过把测试样本数据的分位数与已知分布相比较,从而来检验数据的分布情况。[1]分位数:亦称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点。常用的有一个分位数叫,百分位数,它是指如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。QQ图是一种散点图,对应于正态分布的QQ图,就是由标准正态分布的分位

    2022年8月10日
    7
  • 背景图片的精灵图的使用

    背景图片的精灵图的使用&lt;!DOCTYPEhtml&gt;&lt;html&gt;&lt;head&gt;&lt;metacharset="utf-8"/&gt;&lt;metahttp-equiv="X-UA-Compatible"content="IE=edge"&gt;&lt;title&gt;背景图片的精灵图的使用&lt;

    2022年6月9日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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