Criteria查询

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

阅读更多
个人分类: hibernate
上一篇struts2标签定义文件 struts-tags-tld
下一篇整个继承树映射到一张表
想对作者说点什么? 我来说一句

09 Criteria查询方式

2013年04月25日 5.99MB 下载

使用Hibernate开发租房系统

2014年11月22日 7.12MB 下载

没有更多推荐了,返回首页

关闭
关闭