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框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域 ...
随机推荐
- 搜索会抓取网站域名的whoise信息吗
http://www.wocaoseo.com/thread-309-1-1.html 网站是否在信产部备案,这是不是会成为影响网站收录和排名的一个因素?百度是否会抓取域名注册人的相关whois信息吗 ...
- 力扣Leetcode 461. 汉明距离
给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换. 完成所有替换操作后,请你返回这个数组. 示例: 输入:arr = [17,18,5,4,6,1] 输 ...
- rust 模块组织结构
rust有自己的规则和约定用来组织模块,比如一个包最多可以有一个库crate,任意多个二进制crate.导入文件夹内的模块的两种约定方式... 知道这些约定,就可以快速了解rust的模块系统. 先把一 ...
- JS开发必须知道的41个技巧
JS是前端的核心,但有些使用技巧你还不一定知道:本文梳理了JS的41个技巧,帮助大家提高JS的使用技巧: Array 1.数组交集 普通数组 const arr1 = [, , , , , ,],ar ...
- 利用GetPrivateProfileString读取配置文件(.ini)
利用GetPrivateProfileString读取配置文件(.ini) 配置文件中经常用到ini文件,在VC中其函数分别为: 写入.ini文件:bool WritePrivateProfileSt ...
- Spine学习五- spine动画融合
在许多地方,都需要用到动画融合,unity的新版动画系统已经能够很方便的进行动画融合,那么使用spine的动画状态机的情况下,如何来进行动画融合呢? 官方有两种方案,一种是使用混合动作实现,另一种是使 ...
- 使用Loadrunner进行性能测试
一.确定性能测试的范围.要求.配置.工具等 明确测试的系统: 本文档主要指的是web应用. 明确测试要求: 用户提出性能测试,例如,网站首页页面响应时间在3S之内,主要的业务操作时间小于10s,支持3 ...
- Docker 搭建 Redis Cluster 集群环境
使用 Docker 搭建 Redis Cluster,最重要的环节就是容器通信的问题,这一块我们在之前的文章中已经给大家解决了<Docker 网络模式详解及容器间网络通信>,本篇文章主要练 ...
- Spring security OAuth2.0认证授权学习第一天(基础概念-认证授权会话)
这段时间没有学习,可能是因为最近工作比较忙,每天回来都晚上11点多了,但是还是要学习的,进过和我的领导确认,在当前公司的技术架构方面,将持续使用Spring security,暂不做Shiro的考虑, ...
- 使用java.io.RandomAccessFile更改文本文件的内容
原文本内容: 2020-01-21 08:31:08.520 [main] INFO logbackCfg.App -秦时明月汉时关 2020-01-21 08:31:08.521 [main] ER ...