Criteria查询

转载 2012年03月30日 15:59:33
通过Session得到Criteria类的对象
Java代码  收藏代码
  1. /**   
  2.  * 用Criteria方便的综合查询 Criteria类有丰富的比较方法   
  3.  *    
  4.  * 如:大于,小于,等于, not null, in,null, like, isEmpty....   
  5.  */    
  6. public static void select()     
  7. {     
  8.     Session s = null;     
  9.     try    
  10.     {     
  11.         s = HibernateUtil.getSeesion();     
  12.     
  13.         //得到Criteria对象     
  14.         final Criteria c = s.createCriteria(User.class);     
  15.     
  16.         //添加查询条件 ,eq()表示等于,第一个参数是User类上的属性名, 第二个参数是值 .     
  17.         c.add(Restrictions.eq("name""zl"));     
  18.         c.add(Restrictions.lt("birthday"new Date())); //lt()表示小于     
  19.     
  20.         //下面两个条件是 或的关系,可以注意观察输出的SQL语句     
  21.         c.add(Restrictions.or(Restrictions.eq("name""wj"), Restrictions.eq("name""name0")));     
  22.         // 分页     
  23.         c.setFetchSize(10); //从第10条记录起     
  24.         c.setMaxResults(10); //查出10条记录     
  25.     
  26.         //执行查询     
  27.         final List<User> list = c.list();     
  28.         for (final User u : list)     
  29.         {     
  30.             System.out.println(u.getId() + " " + u.getName());     
  31.         }     
  32.     }     
  33.     finally    
  34.     {     
  35.         s.clear();     
  36.     }     
  37. }    

 

 

DetachedCriteria 在构造时不须要Session对象,可以在没有Session时完成拼接查询条件,要执行时才须要Session对象

Java代码  收藏代码
  1. //在Action中 拼查询条件  
  2.     public ActionForward Action (....)  
  3.     {   
  4.          DetachedCriteria dc = DetachedCriteria.forClass(User.class);  
  5.          String name = request.getParameter("name");  
  6.           
  7.         //拼查询条件  
  8.          if (name != null)  
  9.             dc.add(Restrictions.eq("name", name));  
  10.          int age = request.getParameter("age");  
  11.          if(age > 0)  
  12.              dc.add(Restrictions.eq("age", age));  
  13.          List users = query(dc);  
  14.     }  

 

Java代码  收藏代码
  1. //在DAO层 查询  
  2.      static List query(DetachedCriteria dc)   
  3.      {  
  4.         Session s = HibernateUtil.getSession();  
  5.         Criteria c = dc.getExecutableCriteria(s);  //这时须要一个session  
  6.         List rs = c.list();  
  7.         s.close();  
  8.         return rs;  
  9.     } 

Criteria查询

  • 2012年10月23日 14:14
  • 1007KB
  • 下载

关于Hibernate的Criteria查询

Hibernate 作为一个重要的且很流行的数据库/实体映射工具,支持多种方式的查询。本文介绍Hibernate API 支持的Criteria 条件查询。 在具体介绍Hibernate 查询之前,...
  • shawzt
  • shawzt
  • 2012年05月03日 15:56
  • 249

Criteria查询表达式:

Criteria查询表达式:   正如我们所见,Expression对查询语句的表达式进行了封装和限制,下表列出了Expression所有的方法,以及每个方法所对应的查询表达式及其限制。 ...

hibernate中criteria查询

package com.tudou.hibernates.t1; import java.util.List; import org.hibernate.Criteria; import org....

Hibernate框架Criteria查询

一、使用Criteria查询数据         1.条件查询             1.1:使用Criteria查询的步骤                     1.使用Session接口的cr...

Hibernate Criteria查询之多表连接分页-1

最近尝试用Hibernate的Criteria查询实现多表连接下的分页,发现一些Hibernate的奇怪问题:多表连接后的分页求总条数始终报错,检查生成的sql也不正确。研究许久找到问题所在,特贴如下...

Hibernat 使用Criteria查询多对多关系(SET集合)条件

1.版块 module{   private Set moderators=new HashSet(); } 版主 moderator{ private Set modules=new H...
  • wconvey
  • wconvey
  • 2014年11月29日 10:30
  • 2449

hibernate进阶查询--criteria查询

package org.ijob.db.hibernate.test; import java.util.Iterator; import java.util.List; import ...

hibernate学习笔记6--Criteria查询方式、完整小练习(开发步骤)

一、Criteria查询方式 没有sql语了,因此更加面向对象一些。 Criteria是一种比HQL更面向对象的查询方式;Criteria的创建方式:  Criteria c = s.creat...
  • Hollboy
  • Hollboy
  • 2013年05月23日 20:14
  • 1693

Criteria查询用法

hibernate,Criteria,Restrictions
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Criteria查询
举报原因:
原因补充:

(最多只允许输入30个字)