resultMap是MyBatis的自定义结果映射规则,使用频繁。
resultMap基础使用
映射文件
1 | <!--resultMap:自定义某个javaBean的封装规则 |
测试
1 | public SqlSessionFactory getSqlSessionFactory() throws IOException { |
resultMap单个对象联合查询
场景一:
    查询user的同时查询学生对应的班级
    user.userclass=Student_class.id
    一个学生有与之对应的班级信息;
    id name sex userclass || id ban
映射文件
在resultMap中使用使用association定义关联的单个对象的封装规则。
1 | <!-- |
测试
1 |
|
resultMap联合分步查询
使用association进行分步查询。
映射文件
使用分步查询需要新建一个班级的映射文件。
学生信息映射文件
1 | <!-- 使用association进行分步查询: |
班级信息映射文件
1 | ?xml version="1.0" encoding="UTF-8"?> |
测试
1 |
|
resultMap集合对象关联查询
场景二:
   查询班级的时候将班级对应的所有学生信息也查询出来:注释在BanMapper.xml中
BanMapper.xml(班级信息映射文件)
嵌套结果集的方式,使用collection标签定义关联的集合类型的属性封装规则。
1 | <!-- public class Ban { |
测试
1 |
|
resultMap集合对象关联分步查询
使用collection进行分步查询。
映射文件
班级映射文件
1 | ?xml version="1.0" encoding="UTF-8"?> |
测试
1 |
|
总结
在使用分步查询的时候需要一个实体类拥有一个方法接口和相对应的映射文件,最重要的是一定要把映射文件注册到全局配置文件中。