一、parameterType(输入映射)
比如说:要用到复杂的联合查询时,传入的查询条件很复杂(可能包含用户信息,商品信息等多个不同实体类),这时候该怎么办? 通常的做法是 : 定义包装类型的实体类(pojo),在包装类型的 pojo 中将复杂查询条件包装进去。
1.1 定义一个包装实体类:
1.2 UserMapper.xml:
1.3 UserMapper.java:
1.4 JunitTest 测试类:
创建会话工厂:(@Before 注释的函数在 @Test 函数之前发生)
二、resultMap(高级输出映射)
mybatis 中使用 resultMap 完成高级输出结果映射。
如果查询出来的列名和 pojo 的属性名不一致,通过定义一个 resultMap 对列名和 pojo 属性名之间作一个映射关系。
2.1 定义 resultMap
2.2 使用 resultMap 作为 statement 的输出映射类型
这里用到了 sql 片段 和 foreach :
2.3 输入类型也是包装UserQueryVo:
结合上一节的描述: