Hibernate4.3 QBC查询
一、基本查询
1 Session session = HibernateUtils.getSession();
2 //创建QBC查询接口的实现类
3 Criteria criteria = session.createCriteria(Person.class);
4 //查询对象列表
5 List<Person> personList = criteria.list();
单个属性的查询
1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //获得具体查询的属性
4 PropertyProjection pp = Projections.property("pname");
5 //设置具体查询的列
6 criteria.setProjection(pp);
7 List<String> nameList = criteria.list();
多个属性的查询
1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //获得具体查询的属性
4 PropertyProjection pp = Projections.property("pname");
5 PropertyProjection pp1 = Projections.property("pgender");
6 //创建要查询列的集合
7 ProjectionList pList = Projections.projectionList();
8 pList.add(pp);
9 pList.add(pp1);
10 //设置具体查询的列
11 criteria.setProjection(pList);
12 List<Object[]> objArrList = criteria.list();
二、统计查询
1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //设置要查询统计的属性
4 AggregateProjection ap = Projections.max("salary");
5 criteria.setProjection(ap);
6 Object result = criteria.uniqueResult();
7 System.out.println(result);
8 //查询总数
9 criteria.setProjection(Projections.rowCount());
10 Object result2 = criteria.uniqueResult();
11 System.out.println(result2);
12 //查询平均值
13 criteria.setProjection(Projections.avg("salary"));
14 Object result3 = criteria.uniqueResult();
15 System.out.println(result3);
三、分组统计查询
1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //创建查询项的集合
4 ProjectionList pl = Projections.projectionList();
5 //设置要查询的属性
6 PropertyProjection pp1 = Projections.property("pgender");
7 AggregateProjection ap = Projections.max("salary");
8 PropertyProjection pp = Projections.groupProperty("pgender");
9 pl.add(pp1);
10 pl.add(ap);
11 pl.add(pp);
12 criteria.setProjection(pl);
13 List<Object[]> objArrList = criteria.list();
四、排序
1 Criteria criteria = session.createCriteria(Person.class);
2 criteria.addOrder(Order.desc("salary"));
3 List<Person> pList = criteria.list();
五、分页查询
1 Criteria criteria = session.createCriteria(Person.class);
2 //设置分页条件
3 criteria.setFirstResult(0);
4 criteria.setMaxResults(3);
5 List<Person> list = criteria.list();
六、限定查询
1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //创建查询条件
4 Criterion c = Restrictions.eq("id", 4);
5 criteria.add(c);
6 List<Person> list = criteria.list();
1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //创建查询条件,默认AND链接
4 Criterion c = Restrictions.ge("salary", 300);
5 Criterion c1 = Restrictions.le("salary", 500);
6 criteria.add(c);
7 criteria.add(c1);
8 List<Person> list = criteria.list();
1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //创建查询条件
4 Criterion c = Restrictions.and(Restrictions.ge("salary", 400),Restrictions.eq("pgender", 0));
5 criteria.add(c);
6 List<Person> list = criteria.list();
七、模糊查询
1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //创建查询条件
4 Criterion c = Restrictions.like("pname", "张%");
5 criteria.add(c);
6 List<Person> list = criteria.list();
Hibernate4.3 QBC查询的更多相关文章
- Hibernate5.2之QBC查询
Hibernate5.2值QBC查询 一.简介 Hibenate的QBC查询个人认为是Hib ...
- [原创]java WEB学习笔记92:Hibernate学习之路-- -QBC 检索和本地 SQL 检索:基本的QBC 查询,带 AND 和 OR 的QBC,统计查询,排序,分页
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Hibernate之QBC查询与本地SQL查询
1. QBC查询: QBC 查询就是通过使用Hibernate提供的QueryByCriteria API 来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口 ...
- hibernate_05_hibernateHQL查询QBC查询和SQL查询
1.HQL简介:HQL是Hibernate Query Language(Hibernate 查询语言)的缩写,提供更加丰富灵活.更为强大的查询能力:HQL更接近SQL语句查询语法.Hibernate ...
- Hibernate中createCriteria即QBC查询的详细用法 .Hibernate中createCriteria即QBC查询的详细用法 .
现在假设有一个Student类,内有id,name,age属性String hql = "from Student s";按照以前的做法,我们通常是Query query = se ...
- QBC查询、离线条件查询(DetachedCriteric)和分页查询模版
一.QBC检索步骤 QBC检索步骤: 1.调用Session的createCriteria()方法创建一个Criteria对象. 2.设定查询条件.Expression类提供了一系列用于设定查询条件的 ...
- Hibernate中createCriteria即QBC查询的详细用法
现在假设有一个Student类,内有id,name,age属性String hql = "from Student s";按照以前的做法,我们通常是Query query = se ...
- Hibernate学习第4天--HQL——QBC查询详解,抓取策略优化。
上次课回顾: l Hibernate的一对多 n 表与表之间关系 u 一对多关系 u 多对多关系 u 一对一关系 n Hibernate的一对多配置 u 搭建Hibernate基本环境 ...
- SSH的简单入门体验(Struts2.1+Spring3.1+Hibernate4.1)- 查询系统(上)
所谓SSH,指的是struts+spring+hibernate的一个集成框架,它是目前较流行的一种Web应用程序的开源框架. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域 ...
随机推荐
- Java高级特性——反射机制(第一篇)
——何为动态语言,何为静态语言?(学习反射知识前,需要了解动态语言和静态语言) 动态语言 >是一类在运行时可以改变其结构的语言,例如新的函数.对象.甚至是代码可以被引进,已有的函数可以被删除或者 ...
- 分享一个操作pdf文件的js文件-pdfObject.js(文件预览、下载、打印等操作都具备)
获取相关资料或者源码的朋友可以关注下公众号,回复关键字pdf20200518即可
- 抗疫复产,CDN助企业破局发展
摘要:CDN的任务就是要确保这条“互联网信息高速公路”的顺畅通行,避免因为拥塞而导致出行效率的降低. 在抗疫复产的过程中,云计算大放异彩.作为数字经济的流量底座,CDN为互联网海量汹涌的数据内容分发保 ...
- .net core学习笔记,组件篇:服务的注册与发现(Consul)初篇
1.什么是服务注册中心? 在学习服务注册与发现时,我们要先搞明白到底什么是服务注册与发现. 在这里我举一个生活中非常普遍的例子——网购来简单说明,网购在我们日常生活中已经是非常普遍了,其实网购中的(商 ...
- WPF实现的加载动画
2020-09-03 09:43:30 xaml代码 <Grid x:Name="LayoutRoot" Background="Transparent" ...
- 虚拟机VmWare打开报错,错误提示:VMware Authorization Service is not running!
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 微博:http://weibo.com/mcxiaobing 说明:打开我的虚 ...
- 《神经网络的梯度推导与代码验证》之CNN前向和反向传播过程的代码验证
在<神经网络的梯度推导与代码验证>之CNN的前向传播和反向梯度推导 中,我们学习了CNN的前向传播和反向梯度求导,但知识仍停留在纸面.本篇章将基于深度学习框架tensorflow验证我们所 ...
- github学生认证——申请学生开发包
写在前面 申请学生认证的好处: GitHub学生的免费AWS Educate入门帐户,价值100美元. 专业的桌面IDE:IntelliJ IDEA,PyCharm等.学生的免费订阅,每年更新一次. ...
- jenkins打包前端项目报 error: index-pack died of signal 15 问题解决
jenkins打包前端项目报 error: index-pack died of signal 15 问题解决 前几天用jenkins打包一个前端项目的时候出现了 error: index-pack ...
- html基础:DOM操作
DOM(Document Object Model 文档对象模型) 一个web页面被封装成一个dom对象,通过dom中的js对页面的标签进行操作 一.获取对象 浏览器页面上右键--检查--consol ...