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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 史上最全 XMind 8 快捷键大全「建议收藏」

    史上最全 XMind 8 快捷键大全「建议收藏」对于那3名小学生在我背后鬼鬼祟祟小声议论的这件事,其实我是知晓的。但我还是将注意力集中在眼前的屏幕上,力求表现得尽可能好一些,毕竟这局的形势尚未明朗,胜负依旧难分。又是一阵剧烈的连续按键,对方英雄终于败在我的剑下。随着身后的小学生团队发出“哇”的一声惊叹,我感受到了他们向我投来近乎崇拜的目光。我早已习惯小学生们的艳羡,以及被他们赋予的“大神”称号,当然还有他们对我惯常的提问,“大哥哥,怎…

    2022年5月22日
    47
  • 李彦宏现身巴黎Viva科技大会:机遇常在,未来通过科技和创新改变生活[通俗易懂]

    李彦宏现身巴黎Viva科技大会:机遇常在,未来通过科技和创新改变生活[通俗易懂]近日,为期三天的“VivaTechnologyParis2016”科技峰会在法国巴黎举办,李彦宏受邀出席。阳狮集团董事长兼CEOMauriceLevy担当峰会对话主持,共议全球…

    2025年6月22日
    3
  • HQL的左连接_左连接与右连接的区别

    HQL的左连接_左连接与右连接的区别最近做一个查询实现把一个表的记录全部显示出来并且显示关联的另外一个表的记录,这当然谁都知道要用到外连接查询,然而过程并不愉快。在Hibernate的映射文件中配置好关联关系之后,查询的时候可以直接使用比如selectnewmap(student.studentIDasstudentID,student.studentAccountasstudentAccount,student.stu

    2025年11月26日
    5
  • C++学习——数据类型(强制)转换详解

    C++学习——数据类型(强制)转换详解有时,编程的过程中需要将值从一种数据类型转换为另一种数据类型。C++ 提供了这样做的方法。如果将一个浮点值分配给一个 int 整型变量,该变量会接收什么值?如果一个 int 整数乘以一个 float 浮点数,结果将会是什么数据类型?如果一个 double 浮点数除以一个 unsigned int 无符号整数会怎么样?是否有办法预测在这些情况下会发生什么?答案是肯定的。当运算符的操作数具有不同的…

    2022年8月18日
    9
  • Java发送邮件的简单实现

    Java发送邮件的简单实现

    2022年1月31日
    44
  • C语言:strcmp()—字符串比较

    C语言:strcmp()—字符串比较C语言:strcmp()—字符串比较函数原型、参数、功能和使用方法。

    2025年8月25日
    2

发表回复

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

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