Mybatis 学习笔记之 输入输出映射(五)

一、parameterType(输入映射)

比如说:要用到复杂的联合查询时,传入的查询条件很复杂(可能包含用户信息,商品信息等多个不同实体类),这时候该怎么办? 通常的做法是 : 定义包装类型的实体类(pojo),在包装类型的 pojo 中将复杂查询条件包装进去

1.1 定义一个包装实体类:

Mybatis 学习笔记之 输入输出映射(五)

1.2 UserMapper.xml:

Mybatis 学习笔记之 输入输出映射(五)

1.3 UserMapper.java:

Mybatis 学习笔记之 输入输出映射(五)

1.4 JunitTest 测试类:

创建会话工厂:(@Before 注释的函数在 @Test 函数之前发生

Mybatis 学习笔记之 输入输出映射(五)

Mybatis 学习笔记之 输入输出映射(五)



二、resultMap(高级输出映射)

mybatis 中使用 resultMap 完成高级输出结果映射。

如果查询出来的列名和 pojo 的属性名不一致,通过定义一个 resultMap 对列名和 pojo 属性名之间作一个映射关系。

2.1 定义 resultMap

Mybatis 学习笔记之 输入输出映射(五)

2.2 使用 resultMap 作为 statement 的输出映射类型

Mybatis 学习笔记之 输入输出映射(五)

这里用到了 sql 片段 和 foreach :

Mybatis 学习笔记之 输入输出映射(五)

2.3 输入类型也是包装UserQueryVo:

结合上一节的描述:

Mybatis 学习笔记之 输入输出映射(五)

2.5 UserMapper.java:

Mybatis 学习笔记之 输入输出映射(五)

2.6  JunitTest 测试类:
Mybatis 学习笔记之 输入输出映射(五)
2.7 运行结果:

Mybatis 学习笔记之 输入输出映射(五)