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


相关推荐

  • 遗传算法经典实例matlab代码_遗传算法编码方式

    遗传算法经典实例matlab代码_遗传算法编码方式目录一、遗传算法概述二、遗传算法的特点和应用三、遗传算法的基本流程及实现技术3.1遗传算法的基本流程3.2遗传算法的实现技术1.编码2.适应度函数3.选择算子4.交叉算子5.变异算子6.运行参数四、遗传算法的基本原理4.1模式定理4.2积木块假设五、遗传算法编程实例(MATLAB)一、遗传算法概述遗传算法(…

    2022年9月12日
    0
  • mod_wsgi + pymssql通路SQL Server座

    mod_wsgi + pymssql通路SQL Server座

    2022年1月10日
    48
  • target host is null

    target host is null在接口调用的时候出现targethostisnull的异常原因是因为接口地址没有加http://

    2022年10月19日
    1
  • centos解压命令

    centos解压命令-c:建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的:-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出参数-f是必须的-f:使用档案名…

    2022年5月16日
    30
  • 数据库系统原理及MySQL应用教程_三十讲之第三讲读后感

    数据库系统原理及MySQL应用教程_三十讲之第三讲读后感此文为极客时间MySQL实战45讲第13节的笔记一、表数据的存放位置表数据既可以存在共享表空间里,也可以是单独的文件。这个行为是由参数innodb_file_per_table控制的:OFF

    2022年8月16日
    3
  • python中向下取整(round向下取整)

    fromnumpy\core_multiarray_umath.pynp.floor()deffloor(x,*args,**kwargs):#realsignatureunknown;NOTE:unreliablyrestoredfrom__doc__”””floor(x,/,out=None,*,where=True,casting=’same_kind’,order=’K’,dtype=None,subok=True[,signat

    2022年4月10日
    156

发表回复

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

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