
where if
dao
在含有int类型的查询参数,最好设置为Integer,以便接收null值
1 2 3
|
List<Student> selectStudents(@Param("name") String name, @Param("age") Integer age, @Param("gender") GenderEnum gender);
|
mapper
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
<select id="selectStudents" resultMap="studentMapper"> select * from `student` <where> <if test="name != null"> `name` like concat('%',#{name},'%') </if> <if test="age != null"> and `age` = #{age} </if> <if test="gender != null"> and `gender` = #{gender,typeHandler=genderTypeHandler} </if> </where> </select>
|
test
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
@Test public void test() { SqlSession session = factory.openSession(); try { StudentMapper studentMapper = session.getMapper(StudentMapper.class); // Student student = new Student("hu",19,GenderEnum.getGender(1)); // int affectedRows = studentMapper.insertStudent(student); String name = "h"; int age = 20; GenderEnum gender = GenderEnum.getGender(2); List<Student> students = studentMapper.selectStudents(name, age,gender); // List<Student> students = studentMapper.selectStudents(name, age,null); // List<Student> students = studentMapper.selectStudents(name, null,gender); // List<Student> students = studentMapper.selectStudents(name, null,null); // List<Student> students = studentMapper.selectStudents(null, null,null); if(!students.isEmpty()){ Iterator<Student> it = students.iterator(); while(it.hasNext()){ Student student = it.next(); System.out.println(student); } }else{ System.out.println("没有查到结果"); } } finally { session.commit(); session.close(); } }
|
近期评论