博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate查询HQL(第二部分)
阅读量:6835 次
发布时间:2019-06-26

本文共 4320 字,大约阅读时间需要 14 分钟。

HQL查询

  1.分页查询

     Session session = HibernateUtils.getCurrentSession();        Transaction transaction = session.beginTransaction();        try {            NativeQuery
query = session.createQuery("from Student", Student.class); query.setFirstResult(2);//读取数据的起始位置 query.setMaxResults(2);//每次最多读取多少条数据 List
list = query.list();             System.out.println(list); transaction.commit(); } catch (Exception e) { // TODO: handle exception if (transaction!=null) { transaction.rollback(); } }

  2.排序查询

     Session session = HibernateUtils.getCurrentSession();        Transaction transaction = session.beginTransaction();        try {       //from 持久化类 order by 成员变量属性名  asc/desc            Query
query = session.createQuery("from Person order by age desc", Person.class); List
list = query.list(); System.out.println(list); transaction.commit(); } catch (Exception e) { // TODO: handle exception if (transaction != null) { transaction.rollback(); } }

  3.聚合函数查询

     //sum和count结果类型都是Long     结果类型是Long,跟所求列的类型无关     //max和min结果类型和所求列的类型一致   结果类型跟所求的列的类型有关     //avg结果类型是Double    跟所求的列的类型无关      Session session = HibernateUtils.getCurrentSession();        Transaction transaction = session.beginTransaction();        try {            //Query
query = session.createQuery("select count(*) from Person", Long.class); //Query
query = session.createQuery("select sum(age) from Person", Long.class); //Query
query = session.createQuery("select max(age) from Person", Integer.class); //Query
query = session.createQuery("select min(age) from Person", Integer.class); Query
query = session.createQuery("select avg(age) from Person", Double.class); System.out.println(query.uniqueResult()); transaction.commit(); } catch (Exception e) { // TODO: handle exception if (transaction != null) { transaction.rollback(); } }

  4.映射查询

//投影查询://需求:前面查询的都是查询所有列。表示扫描整个表。//实际情况中,可能只关注表中的其中几个列,并不是所有。 如果这种情况再去扫描整个表查数据,效率低下。
//1.查询Person类中的名称列name     Session session = HibernateUtils.getCurrentSession();        Transaction transaction = session.beginTransaction();        try {                        //name 是属性名            Query
query = session.createQuery("select name from Person", String.class); System.out.println(query.list()); transaction.commit(); } catch (Exception e) { // TODO: handle exception if (transaction != null) { transaction.rollback(); } }  
//2.查询Person类中的名称列name,address,查询多个列,返回结果类型是Object[]类型     Session session = HibernateUtils.getCurrentSession();        Transaction transaction = session.beginTransaction();        try {            Query
query = session.createQuery("select name,sex from Person", Object[].class); List
list = query.list(); for (Object[] objects : list) { System.out.println(objects[0]+"--"+objects[1]); } transaction.commit(); } catch (Exception e) { // TODO: handle exception if (transaction != null) { transaction.rollback(); } }
//3.查询Person类中的名称列name,address  优化:返回值是指定的实体类类型Person(必须具有对应的有参构造方法) 无参的构造方法依然要存在     Session session = HibernateUtils.getCurrentSession();        Transaction transaction = session.beginTransaction();        try {            Query
query = session.createQuery("select new Person(name,sex) from Person", Person.class); List
list = query.list(); System.out.println(list); transaction.commit(); } catch (Exception e) { // TODO: handle exception if (transaction != null) { transaction.rollback(); } }

 

 

 

转载于:https://www.cnblogs.com/a77355699/p/7880425.html

你可能感兴趣的文章
mySQL教程 第10章 事务和锁
查看>>
Hello, Kafka World
查看>>
Exchange 2010和Exchange 2016共存部署-10:配置多域名证书
查看>>
SFB 项目经验-03-共存迁移-Lync 2013-TO-SFB 2015-完成
查看>>
F5 配置手册 -F5 BIG-IP 10.1-2-配置-基本参数
查看>>
《统一沟通-微软-实战》-6-部署-2-中介服务器-1-定义中介服务器
查看>>
虚拟化,可实现国产化替代
查看>>
PowerShell通过安全组创建计算机账号
查看>>
Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载)
查看>>
《兵临城下》:360输在“斯大林格勒”?
查看>>
《塞洛特傳說》道具系统
查看>>
MCollective架构篇4-MCollective各种插件的部署及测试
查看>>
第五章 Python函数你知多少
查看>>
百度推出飓风算法,严厉打击恶劣采集
查看>>
Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(4)...
查看>>
组策略部署软件----将部署的软件分类
查看>>
系统管理员在企业中的职业定位及发展方向 连载(二)
查看>>
完美世界推穿戴式设备:能消灭“宅玩家”吗?
查看>>
关东升的《从零开始学Swift》3月9日已经上架
查看>>
IFA与“色“俱进,三星“量子点+曲面”如何掀起新变革?
查看>>