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框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域 ...
随机推荐
- JVM大作业5——指令集
JVM的每一个线程都有一个虚拟机栈,方法调用时,JVM会在虚拟机栈内为该方法创建一个栈帧. 一条线程,只有正在执行的方法对应的栈帧时可活动的,这个栈帧被称为当前栈帧,当前栈帧对应的方法被称为当前方法, ...
- vs使用fscanf和fprintf错误警告处理
严重性代码说明项目文件行 禁止显示状态错误 C4996 fopen('fscanf'.strcmp):This function or variable may be unsafe. 最全解决办法(转 ...
- Kafka与RabbitMQ区别
RabbitMQ 和 Kafka 的显著差异 RabbitMQ 是一个消息代理,但是 Apache Kafka 是一个分布式流式系统.好像从语义上就可以看出差异,但是它们内部的一些特性会影响到我们是否 ...
- Android开发之TextView中间设置横线,适用于电商项目,商品原价之类的功能。
textview.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG ); //中间横线 textview.getPaint().setFlags(Pai ...
- android,在java代码中,如何给textview设置不同的颜色,以及引用color中资源设置颜色
textV.setTextColor(Color.parseColor("#FF0000")); <pre name="code" class=" ...
- 构造清华大学的yum源
[root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# vim qinghua.repo [qinghua] na ...
- Python Embedded
文档 https://docs.python.org/3/extending/index.html https://www.codeproject.com/articles/11805/embeddi ...
- MD5截断比较验证
最近在打De1CTF时在Web项目中碰到了两次MD5截断比较验证的题目,在做题时为了方便顺手写了一个小脚本来爆破Code,下面就简单分享一下思路 以De1CTF线上赛Web3为例,在De1CTF中,我 ...
- 非旋Treap——fhq treap
https://www.luogu.org/problemnew/show/P3369 知识点:1.拆分split,合并merge 2.split,merge要点:通过传址调用来简便代码 3.记得ro ...
- FFmpeg开发笔记(四):ffmpeg解码的基本流程详解
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...