关闭

Criteria查询

标签: sessionjavadaonullactionquery
186人阅读 评论(0) 收藏 举报
分类:
通过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.     } 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1014955次
    • 积分:8131
    • 等级:
    • 排名:第2481名
    • 原创:125篇
    • 转载:448篇
    • 译文:3篇
    • 评论:35条
    最新评论