动态sql,就是MyBatis中有一些标签,可以帮助我们来拼接sql。
一、 if
if标签可通过test属性的表达式进行判断,若表达式的结果为true,则标签中的内容会执行;反之标签中的内容不会执行。
应用场景:表单展示中通过过滤条件展示数据。
比如可以根据年龄或者性别查询员工数据。
输入参数两种取值可能,空字符串和null。
**Example:**根据年龄,部门,或者性别过滤查询。
mapper中查询函数定义:
List<Employee> getEmpByFilter(@Param("filter")Filter filter);
过滤条件Filter定义为:
package com.lucky.mybatis.bean;
public class Filter {
private String gender;
private int age;
private int departmentId;
public Filter() {
}
public Filter(String gender, int age, int departmentId) {
this.gender = gender;
this.age = age;
this.departmentId = departmentId;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getDepartmentId() {
return departmentId;
}
public void setDepartmentId(int departmentId) {
this.departmentId = departmentId;
}
@Override
public String toString() {
return "Filter{" +
"gender='" + gender + '\'' +
", age=" + age +
", departmentId=" + departmentId +
'}';
}
}
xml文件sql定义为
<select id="getEmpByFilter" resultMap="emp">