赞
踩
- Map<String,List<String>> condition=new HashMap<String,List<String>>();
- //姓名
- if(name.trim()!=null&&name.trim().length()>0){
- List<String> stuName=new ArrayList<String>();
- stuName.add(name.trim());
- condition.put("s_name",stuName);
- }
- //性别
- if(sex!=null&&sex.length()>0){
- List<String> stuSex=new ArrayList<String>();
- stuSex.add(name.trim());
- condition.put("s_sex",stuSex);
- }
- //课程
- if(courses!=null&&courses.length()>0){
- List<String> stuCourses=new ArrayList<String>();
- String[] courseArr=stuCourses.split(",");
- for(int i=0;i<courseArr.length;i++){
- stuCourses.add(courseArr[i]);
- }
- condition.put("s_course",stuCourses);
- }

mybatis:
- <select id="getStudentsByCondition" parameterType="java.util.Map" resultMap="BaseResultMap">
- select .....where
- <if test="condition != null">
- <foreach collection="condition.keys" index="index" item="item">
- <if test="condition[item]!=null and condition[item]!=''">
- <choose>
- <when test="item=='s_course'">
- and ${item} in
- <foreach collection="condition[item]" item="course" open="(" separator="," close=")">
- #{course}
- </foreach>
- </when>
- <otherwise>
- and ${item}
- like '%'+
- <foreach collection="condition[item]" item="others">#{others}</foreach>
- +'%'
- </otherwise>
- </choose>
- </if>
- </foreach>
- </if>
- </select>
-

总结:其实这种mybatis的配置看起来还是挺复杂的,具体情况还要具体分析。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。