基於Struts2+Hibernate的DetachedCriteria多條件查詢
阿新 • • 發佈:2017-05-08
img 類別 ota 配置 his property mat total ide
上一篇我們講訴了基於SSH框架利用Criteria的多條件查詢,這一篇我們就接著來看基於SSH框架利用DetachedCriteria的多條件查詢。
一、Jsp表單查詢頁
1 <form action="${pageContext.request.contextPath}/CourseTypeAction_listCourse.action"
2 method="post"> 3 <table width="88%" border="0" class="emp_table" style="width:80%;"> 4 <tr> 5<td width="10%">課程類別:</td> 6 <td><input type="text" name="courseName" size="30" value="" /></td> 7 </tr> 8 <tr> 9 <td >課程簡介:</td> 10 <td > <input type="text" name="remark" size="30" value="" /></td> 11</tr> 12 <tr> 13 <td >總學時:</td> 14 <td ><input type="text" name="totalStart" size="12" value="" /> 至
15 <input type="text" name="totalEnd" size="12" value="" /></td> 16 </tr> 17 <tr> 18 <td>課程費用:</td> 19<td ><input type="text" name="lessonCostStart" size="12" value="" /> 至
20 <input type="text" name="lessonCostEnd" size="12" value="" /></td> 21 </tr> 22 </table><br>
23 <input type="submit"/>
24 </form> 25Jsp Code
二、javaBean(Course.java)
1 package com.fhcq.bean; 2 3 public class Course { 4 5 String courseType; 6 Double courseCost; 7 Integer studyTime; 8 String remark; 9 10 public String getCourseType() { 11 return courseType; 12 } 13 public void setCourseType(String courseType) { 14 this.courseType = courseType; 15 } 16 public Double getCourseCost() { 17 return courseCost; 18 } 19 public void setCourseCost(Double courseCost) { 20 this.courseCost = courseCost; 21 } 22 public Integer getStudyTime() { 23 return studyTime; 24 } 25 public void setStudyTime(Integer studyTime) { 26 this.studyTime = studyTime; 27 } 28 public String getRemark() { 29 return remark; 30 } 31 public void setRemark(String remark) { 32 this.remark = remark; 33 } 34 35 } 36CourseBean Code
三、Course.hbm.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5 <hibernate-mapping package="com.cskaoyan.course.bean"> 6 7 <!-- name是類名 如果有包就不用寫全類名,否則要寫。 table 表示對應的表名 。建議都要寫 --> 8 <class name="Course" table="course"> 9 10 <!--使用Id配置主鍵 必須配置 --> 11 <id name="courseId" column="courseId"> 12 <!--目前照常,主鍵生成策略 --> 13 <generator class="native"></generator> 14 </id> 15 16 <!--我們的CourseBean的每個普通字段 跟數據庫表course每一列的對應 --> 17 <property name="courseType"></property> 18 <property name="courseCost"></property> 19 <property name="studyTime"></property> 20 <property name="remark"></property> 21 22 </class> 23 </hibernate-mapping>XML Code
四、
CourseDaoImpl.java
1 @Override 2 public List<Course> showPageCourseByCondition(String courseName, String remark,
3 String totalStart, String totalEnd,String lessonCostStart, String lessonCostEnd) { 4 // TODO Auto-generated method stub 5 if(StringUtils.isBlank(courseName) && StringUtils.isBlank(remark)&&StringUtils.isBlank
6 (totalStart) && StringUtils.isBlank(totalEnd)&&StringUtils.isBlank
7 (lessonCostStart) && StringUtils.isBlank(lessonCostEnd)){ 8 return showCoursesByPage(); 9 }else{ 10 DetachedCriteria forClass = DetachedCriteria.forClass(Course.class); 11 if(StringUtils.isNotBlank(courseName)){ 12 forClass.add(Restrictions.like("courseName", courseName.replace(" ", ""),
13 MatchMode.ANYWHERE)); 14 } 15 if(StringUtils.isNotBlank(remark)){ 16 forClass.add(Restrictions.like("remark", remark.replace(" ", ""),
17 MatchMode.ANYWHERE)); 18 } 19 if(StringUtils.isNotBlank(totalStart)){ 20 Integer totalStart1 =Integer.parseInt(totalStart); 21 forClass.add(Restrictions.ge("total", totalStart1)); 22 } 23 if(StringUtils.isNotBlank(totalEnd)){ 24 Integer totalEnd1 =Integer.parseInt(totalEnd); 25 forClass.add(Restrictions.le("total", totalEnd1)); 26 } 27 if(StringUtils.isNotBlank(lessonCostStart)){ 28 double lessonCostStart1 = Double.valueOf(lessonCostStart).doubleValue(); 29 forClass.add(Restrictions.ge("courseCost", lessonCostStart1)); 30 } 31 if(StringUtils.isNotBlank(lessonCostEnd)){ 32 double lessonCostEnd1 = Double.valueOf(lessonCostEnd).doubleValue(); 33 forClass.add(Restrictions.le("courseCost", lessonCostEnd1)); 34 } 35 36 List<Course> findByCriteria = (List<Course>) getHibernateTemplate().findByCriteria
37 (forClass); 38 return findByCriteria; 39 } 40 }DaoImpl Code
基於Struts2+Hibernate的DetachedCriteria多條件查詢