1、Criteria表达式

  Criteria c=session.createCriteria(User.class);

  List result=c.list();

  Iterator it=result.iterator();

  while(it.hasNext()){

    User u=it.next();

    System.out.println("用户名:"+u.getName());

  }

   Criteria criteria = session.createCriteria(User.class);
      criteria.add(Restrictions.eq("name", "bob"));
      List result = criteria.list();
      Iterator it = result.iterator();
      while (it.hasNext()) {
          User user = (User) it.next();
          System.out.println("用户名:" + user.getName());
    }

    方法            说明

    Restrictions.eq()     对应SQL的等于(’=’)
    Restrictions.allEq()     使用Map,使用key/value进行多个相等的值的比对
    Restrictions.gt()     对应SQL的大于 (‘>’)
    Restrictions.ge()     对应SQL的大于等于 (‘>=’)
    Restrictions.lt()     对应SQL的小于 (‘<’)
    Restrictions.le()     对应SQL的小于等于 (‘<=’)
    Restrictions.between()   对应SQL的between子句
    Restrictions.like()     对应SQL的like子句
    Restrictions.in()     对应SQL的in子句
    Restrictions.and()      对应SQL的and
    Restrictions.or()     对应SQL的or
    Restrictions.not()     对应SQL的not

2、使用Example

  House house = new House();
  house.setPrice(new Double(2000));
  house.setFloorage(new Integer(40));

  Criteria criteria = session.createCriteria(House.class);
  criteria.add(Example.create(house));
  List results = criteria.list();
  Iterator it = results.iterator();
  while(it.hasNext()){
      House h= (House)it.next();
      System.out.println("标题:"+h.getTitle()+"  价格"+h.getPrice());
  }  

3、Criteria查询排序

  Criteria 查询不仅能组合出SQL中的where子句的功能,还可以组合出排序查询功能

  使用org.hibernate.criterion.Order对结果进行排序

  排序的方法为:asc() desc()

  Cirteria c=session.createCriteria(House.class);

  c.addOrder(Order.desc("price"));

  

4、Criteria查询实现分页

  Criteria的setMaxResult()方法可以限定查询返回数据的行数

  Criteria的setFirstResult()设定查询返回结果的第一行数据的位置

  Criteria c=session.createCriteria(Hose.class);

  c.setFistResult(3);

  c.setMaxResult(2);

  List result=c.list();

  Iterator it=result.iterator();

  while(it.hasNext()){

    Hose h=it.next();

    System.out.println("标题"+h.getTitle+"价格"+h.getPrice());

  }

  

Criteria查询的更多相关文章

  1. Hibernate框架之Criteria查询 和注解(重点☆☆☆☆☆,难点☆☆☆)

    写好一篇博客,不是容易的事.原因是:你要给自己以后看的时候,还能看懂,最重要的是当别人看到你的博客文章的时候,也一样很清楚的明白你自己写的东西.其实这也是一种成就感!! 对于每一个知识点,要有必要的解 ...

  2. NHibernate系列文章二十三:NHibernate查询之Criteria查询(附程序下载)

    摘要 上一篇文章介绍了NHibernate HQL,他的缺点是不能够在编译时发现问题.如果数据库表结构有改动引起了实体关系映射的类有改动,要同时修改这些HQL字符串.这篇文章介绍NHibernate面 ...

  3. Criteria查询初学者的采纳点哦

    一.Hibernate提供了5种检索对象的方式 1.导航对象图检索方式:根据已经加载的对象导航到其他对象    from  Emp e group by e.dept.deptName 2.OID检索 ...

  4. Criteria查询之sqlRestriction()的理解

    sqlRestriction()的理解 在Criteria查询中 使用sqlRestriction()方法来提供SQL语法作限定查询,作为where字句 查看官方给的例子,如下 List cats = ...

  5. Criteria查询数据

    Criteria介绍: Criteria查询是Hibernate提供的一种查询方式,与HQL基于字符串的查询形式完全不同.Hibernate提供了org.hiberanee.Criteria 接口.o ...

  6. Hibernate框架之Criteria查询

    首先给大家说说Hibernate检索方式 Hibernate提供了5种检索对象的方式 1.导航对象图检索方式:根据已经加载的对象导航到其他对象 2.OID检索方式:按照对象的OID来检索对象 3.HQ ...

  7. Hibernate 、Hql查询和Criteria查询

    HQL查询: public Object query(String name){ Session s=null; try{ s=HibernateSessionFactory.getSession() ...

  8. Hibernate框架Criteria查询

    本文章适合一些初学者 一.使用Criteria查询数据        1.条件查询            1.1:使用Criteria查询的步骤                    1.使用Sess ...

  9. 第九章 Criteria查询及注解

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

  10. hibernate框架学习笔记7:HQL查询、Criteria查询简介

    HQL查询:hibernate独有的查询语言 适用于不复杂的多表查询 示例: 实体类: package domain; public class Customer { private Long cus ...

随机推荐

  1. Maven的几个常用plugin

    出自:https://www.cnblogs.com/zhangxh20/p/6298062.html maven-compiler-plugin 编译Java源码,一般只需设置编译的jdk版本 &l ...

  2. TensorFlow入门-Tianic数据集训练

    import pandas as pd import tensorflow as tf from sklearn.model_selection import train_test_split imp ...

  3. c语言使用librdkafka库实现kafka的生产和消费实例(转)

    关于librdkafka库的介绍,可以参考kafka的c/c++高性能客户端librdkafka简介,本文使用librdkafka库来进行kafka的简单的生产.消费 一.producer librd ...

  4. unity 查找脚本被场景中哪些对象引用

    在需要查找的脚本上右键: 在场景中已经显示出所有引用该脚本的对象

  5. 基元线程同步构造之信号量(Semaphore)

    信号量(semaphore)不过是由内核维护的 int32变量而已,(说通俗点就是好比一个线程容器里面允许执行的线程数,0计数就是允许执行的0个线程数,1就是允许执行的1个线程数,2就是允许执行的2个 ...

  6. go slice和数组的区别

    1.使用方式 数组和slice长的很像,操作方式也都差不多,并且slice包含了数组的基本的操作方式,如下标.range循环,还有一些如len()则是多种类型共用,所以根据操作根本搞不清数组和切片的区 ...

  7. hibernate 解决并发问题

    hibernate 解决并发问题的策略有 1)设置hibernate事务隔离级别 2)hibernate中乐观锁的实现 ps:版本号是由hibernate自己维护的,我们自己只需要做以上二步即可实现乐 ...

  8. spring 整合 hibernate xml配置

    spring 整合 hibernate: hibernate :对数据库交互 spring: ioc   aop 整合点: 1.sessionFactory对象不再由hibernate生成,交由spr ...

  9. 关于struts2中ActionContext类的作用

    关于struts2中ActionContext类的作用有三个: 1.获取三大作用域对象及页面参数 2.是struts标签的上下文对象 3.ThreadLocal内装的就是ActionContext 怎 ...

  10. mysql安装笔记-rpm

    基本内容: 1.需要解决两个依赖 2.需要解决一个包冲突 3.安装mysql服务,以及客户端client 4.修改root的随机密码 5.授予root用户,从任何机器访问任何数据库的任何表的权限 1. ...