Criteria查询,DetachedCriteria离线查询 --做综合查询

 通过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. }    

 

  伦理片 http://www.dotdy.com/

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.     }  

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值