实体对象如下:
public class Employee {
private Integer employeeId;
private String employeeName;
private String employeeEmail;
private String employeePhone;
private Integer employeeAge;
private String employeeGender;
private String employeeBelong;
private String employeeLevel;
private String employeeAddress;
private Date createData;
private Date updateData;
}
//省略getter.setter方法
接口方法定义如下:
/**
* 多条件查询
* @param baseQuery
* @return
*/
public List<T> selectByParams(BaseQuery baseQuery) throws DataAccessException;
XML映射文件如下:
<select id="selectByParams" parameterType="com.rqt.PMSystem.query.EmployeeQuery" resultType="com.rqt.PMSystem.vo.Employee">
# 多条件查询 根据员工名和部门名
select
<include refid="Base_Column_List"/>
from t_employee
<where>
<if test="employeeName!=null and employeeName!=''">
employee_name = #{employeeName}
</if>
<if test="employeeBelong!=null and employeeBelong!=''">
and employee_belong = #{employeeBelong}
</if>
</where>
</select>
执行方法:
List<Employee> employees = employeeMapper.selectByParams(employeeQuery);
结论:
(1)XML中只需resultType
属性值为实体对象别名或全路径名。
(2)mybatis会通过接口文件的返回值类型来判断返回的是集合还是对象。如果是对象,则按常规查询并返回;如果是List集合,mybatis则会将查询到的多条记录设置进集合中并返回。