Hibernate 组合查询

 

 1 public List<Student> findByCondition(Student stu) {
 2     StringBuilder sb=new StringBuilder("from Student where 1=1");
 3     List<Object> params=new ArrayList<Object>();   //参数
 4     String sid=stu.getSid();
 5     if(sid!=null&&!sid.trim().isEmpty()){
 6         sb.append(" and sid like ?");
 7         params.add("%"+sid+"%");
 8     }
 9     
10     SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
11     Date  birthday=stu.getBirthday();
12     if(birthday!=null){
13         sb.append(" and birthday = ?");
14         params.add(birthday);
15     }
16     
17     String sql=sb.toString();
18     Query q = getCurrentSession().createQuery(sql);
19     if (params != null && !params.isEmpty()) {
20         for (int i=0;i<params.size();i++) {
21             q.setParameter(i, params.get(i));
22         }
23     }
24     return q.list();
25     
26     }

 

带有分页的分组查询

  1     public PageBean1 find(Student student, int page, int pageSize) {
  2 
  3         
  4         StringBuilder url = new StringBuilder();
  5         StringBuilder sb = new StringBuilder("from Student s where 1=1");
  6         Map<String, Object> params = new HashMap<String, Object>();
  7         if (student != null) {
  8             //address
  9            
 10             if(student.getAddress()!=null){
 11                 String address = student.getAddress();
 12              if (ServletActionContext.getRequest().getMethod().equalsIgnoreCase("get")) {
 13                 try {
 14                     address = new String(address.getBytes("ISO-8859-1"),"UTF-8");
 15                     student.setAddress(address);
 16                 } catch (UnsupportedEncodingException e) {
 17                     e.printStackTrace();
 18                 }
 19             }
 20             if (address != null && !address.trim().isEmpty()) {
 21                 sb.append(" and s.address like :address");
 22                 url.append("&student.address=").append(address);
 23                 params.put("address", "%" + address + "%");
 24             }
 25             }
 26             
 27             if (student.getGclass() != null) {
 28                 String grade = student.getGclass().getGrade();
 29                 if (grade != null && !grade.trim().isEmpty()) {
 30                 if (ServletActionContext.getRequest().getMethod().equalsIgnoreCase("get")) {
 31                     try {
 32                         grade = new String(grade.getBytes("ISO-8859-1"),"UTF-8");
 33                     } catch (UnsupportedEncodingException e) {
 34                         e.printStackTrace();
 35                     }
 36                 }
 37                 
 38                     sb.append(" and s.gclass.grade = :grade ");
 39                     url.append("&classRoom.grade=").append(grade);
 40                     params.put("grade", grade);
 41                 }
 42            
 46                 String clazz = student.getGclass().getClazz();
 47                 if (clazz != null && !clazz.trim().isEmpty()) {
 48                 if (ServletActionContext.getRequest().getMethod().equalsIgnoreCase("get")) {
 49                     try {
 50                         clazz = new String(clazz.getBytes("ISO-8859-1"),"UTF-8");
 51                     } catch (UnsupportedEncodingException e) {
 52                         e.printStackTrace();
 53                     }
 54                 }
 55                 
 56 
 57                     sb.append(" and s.gclass.clazz = :clazz");
 58                     url.append("&classRoom.clazz=").append(clazz);
 59                     params.put("clazz", clazz);
 60                 }
 61             }
 62              
 63                 Integer stuid = student.getStudentid();
 64                 if (stuid != null && !(stuid == 0)) {
 65                     sb.append(" and studentid = :stuid");
 66                     url.append("&student.studentid=").append(stuid);
 67                     params.put("stuid", stuid);
 68                 }
 69               
 70                 if(student.getStudentname()!=null){
 71                
 72                 String stuname = student.getStudentname();
 73                 if (ServletActionContext.getRequest().getMethod().equalsIgnoreCase("get")) {
 74                     try {
 75                         stuname = new String(stuname.getBytes("ISO-8859-1"),"UTF-8");
 76                     } catch (UnsupportedEncodingException e) {
 77                         e.printStackTrace();
 78                     }
 79                 }
 80             
 81                 if (stuname != null && !stuname.trim().isEmpty()) {
 82                     sb.append(" and studentname like :stuname");
 83                     url.append("&student.studentname=").append(stuname);
 84                     params.put("stuname", "%" + stuname + "%");
 85                 }
 86                 
 87             }
 88         }
 89 
 90         ServletActionContext.getRequest().setAttribute("url", url.toString());
 91         sb.append(" and reamrk1='1' ");
 92         String hql = sb.toString();
 93 
 94         int allRow = studentDao.count(hql, params);
 95         int totalPage = PageBean1.countTotalPage(pageSize, allRow);
 96         final int currentPage = PageBean1.countCurrentPage(page);
 97         List<Student> list = studentDao.find(hql, params, page, pageSize);
 98         PageBean1 pageBean = new PageBean1();
 99         pageBean.setPageSize(pageSize);
100         pageBean.setCurrentPage(currentPage);
101         pageBean.setAllRow(allRow);
102         pageBean.setTotalPage(totalPage);
103         pageBean.setList(list);
104         pageBean.init();
105         return pageBean;
106 
107     }

 

posted on 2014-10-30 10:16  @冰糖  阅读(261)  评论(0编辑  收藏  举报

导航