1、查询所有的学生信息:

public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
session.close();
}

2、条件查询:

运算符与对应的英文缩写:

> gt  >=ge  <lt  <=le  ==eq

!=ne  in:in  between and::between

like:like  is not null:isNotNull  

or:or  and:and

(1)eq的运用:

public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
criteria.add(Restrictions.eq("sex","女"));
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
sessio

(2)like的运用:

public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
criteria.add(Restrictions.like("sname","许__"));
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
session.close();
}

3、分页查询:

需要事先设置起始位置和查询的数量。

public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
criteria.add(Restrictions.eq("sex","女"));
criteria.setFirstResult();
criteria.setMaxResults();
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
session.close();
}

4、总记录数的获取:

 public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
criteria.setProjection(Projections.rowCount());//聚合函数获得总行数
Long rowNum= (Long) criteria.uniqueResult();
System.out.println(rowNum);
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
session.close();
}

5、排序:

升序:

public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
criteria.addOrder(Order.asc("studentno"));
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
session.close();
}

降序:

 public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
criteria.addOrder(Order.desc("studentno"));
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
session.close();
}

5、Criteria 和 DetachedCriteria的区别

Criteria 和 DetachedCriteria 的主要区别在于创建的形式不一样, Criteria 是在线的,所以它是由 Hibernate Session 进行创建的;而 DetachedCriteria 是离线的,创建时无需Session。

例如下面的条件查询代码写在servlet中,没有与session进行连接:

 String cust_name = request.getParameter("cust_name");
DetachedCriteria dc = DetachedCriteria.forClass(Customer.class);
if(cust_name!=null && !"".equals(cust_name)){
dc.add(Restrictions.like("cust_name", "%"+cust_name+"%"));
}

Hibernate的批量查询——Criteria查询所有、条件、分页、统计(聚合函数)、排序的更多相关文章

  1. NHibernate初学三之条件查询(Criteria Queries)与AspNetPager分页实例

    NHibernate除了SQL与HQL两种查询操作外,还有一种就是条件查询Criteria,本文将从网上整理一些Criteria的理论及小实例,最后通过一个结合AspNetPager分页来加深理解,必 ...

  2. 大数据入门到精通16--hive 的条件语句和聚合函数

    一.条件表达 case when ... then when .... then ... when ... then ...end select film_id,rpad(title,20," ...

  3. Hibernate里面如何使用DetachedCriteriaCriteria 实现多条件分页查询

    WEB层: // 获取分页的请求参数 String start = request.getParameter("start"); String page = request.get ...

  4. Hibernate(十二)Criteria查询

    一.简述 Criteria是一种比hql更面向对象的查询方式.Criteria 可使用 Criterion 和 Projection 设置查询条件.可以设置 FetchMode(联合查询抓取的模式 ) ...

  5. [NHibernate]条件查询Criteria Query

    目录 写在前面 文档与系列文章 条件查询 一个例子 总结 写在前面 上篇文章介绍了HQL查询,我个人觉得使用ORM框架就是为了让少些sql,提高开发效率,而再使用HQL就好像还是使用sql,就觉得有点 ...

  6. 第九章 Criteria查询及注解

    第九章   Criteria查询及注解9.1 使用Criteria查询数据    9.1.1 条件查询        Criteria查询步骤:            1)使用session接口的cr ...

  7. JPA criteria 查询:类型安全与面向对象

    参考:https://my.oschina.net/zhaoqian/blog/133500 一.JPA元模型概念,及使用 在JPA中,标准查询是以元模型的概念为基础的.元模型是为具体持久化单元的受管 ...

  8. SQL语句汇总(三)——聚合函数、分组、子查询及组合查询

    聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计 ...

  9. Python-select 关键字 多表查询 子查询

    sql 最核心的查询语句!!!! 增删改 单表查询 select语句的完整写法 关键字的书写顺序 执行顺序 多表查询 笛卡尔积 内连接 左外连接 右外连接 全外连接 通过合并左外连接和右外连接 子查询 ...

随机推荐

  1. 「雅礼集训 2017 Day1」字符串 SAM、根号分治

    LOJ 注意到\(qk \leq 10^5\),我们很不自然地考虑根号分治: 当\(k > \sqrt{10^5}\),此时\(q\)比较小,与\(qm\)相关的算法比较适合.对串\(s\)建S ...

  2. group by 对多个字段进行分组

    转载自:https://blog.csdn.net/xx_star1204/article/details/72884983 在平时的开发任务中我们经常会用到MYSQL的GROUP BY分组, 用来获 ...

  3. ELK学习笔记之Kibana权限控制和集群监控

    详细请参考如下四篇博客,注意ELK6中移除了Xpack的默认账户和密码,需要手动设置 Kibana安全特性之权限控制 ELK 集群 Kibana 使用 X-Pack 权限控制,监控集群状态,警报,监视 ...

  4. IIS 图片 JS CSS 500错误

    1.检查站点MIME类型是否可以正常加载

  5. C#读写设置修改调整UVC摄像头画面-焦点

    有时,我们需要在C#代码中对摄像头的焦点进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...

  6. azure 上传blob到ams(CreateFromBlob)

    遇到的错误:The destination storage credentials must contain the account key credentials,参数名: destinationS ...

  7. C#文件操作之把字符串取到文本文件及把文本文件读取到字符串中

    一.把字符串读取到文本文件中 using (FileStream fs = new FileStream(Path, FileMode.OpenOrCreate))//把json读到一个文本中 { S ...

  8. javascript实现网页倒计时效果

    一.HTML代码如下: <div class="timer" id="timer"> <span style="color: bla ...

  9. Numpy和Pandas的使用入门

    Numpy Numpy基本数据结构 np.array()函数接受一个多维list,返回对应纬度的矩阵 vector = np.array([1, 2, 3, 4]) matrix = np.array ...

  10. Odoo MRP模块

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10825963.html 一:MRP MRP:产品制造管理. 产品制造业务设计到以下几个关键概念: 1)BOM ...