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 }