需求:完成用户的高级查询 或综合查询,需要传入复杂的查询条件,那么需要定义包装类型POJO和拓展类型来完成数据的传递
1、自定义包装类型
public class UserQueryVo {
//引入拓展类并有setter和getter方法
//用户查询条件
private UserCustom userCustom;
public UserCustom getUserCustom() {
return userCustom;
}
public void setUserCustom(UserCustom userCustom) {
this.userCustom = userCustom;
}
}
在包装类中引入所需要的查询条件
2、自定义拓展类型
public class UserCustom extends User{
}
可以扩展任意信息
3、mapper.xml
<select id="findUserList" parameterType="com.mybatis.pojo.UserQueryVo"
resultType="com.mybatis.pojo.UserCustom">
select * from user where user.sex=#{userCustom.sex} and user.username like '%${userCustom.username}%'
</select>
#{userCustom.sex} , %${userCustom.username}% 取出包装类中的信息 ,使用的OGNL表达式
parameterType 输入类型是包装类,因为包装类中可能会包装各种POJO类型,用户pojo,订单pojo等等,,,,,,
resultType 输出类型是拓展类