什么时候使用resultMap
一般我们在Mybatis中使用查询语句的时候,如果查询到的结果不能使用resultType反应出来的时候,可以采用resultMap标签来解决数据查询不到的困难问题。
resultMap标签
<resultMap type="" id="">
<id/>
<result/>
<association property="" select="" column=""></association>
<collection property="" select="" column=""></collection>
</resultMap>
其中type指代的是我们需要映射到的类对象,id表示resultMap在select标签中用的时候的id名称
id标签
这是设置主键使用的,使用此标签配置映射关系(可能不止一个)
result标签
这是一般属性用于配置映射关系使用的(一般不止一个)
association标签:
property:表示pojo类集合中的属性
select:表示所需要的那个类的查询语句
column:从resultMap中传过去用作查询的参数
ofType:集合属性中的对象(可以不写)
collection标签:
property:表示pojo类集合中的属性
select:表示所需要的那个类的查询语句
column:从resultMap中传过去用作查询的参数
ofType:集合属性中的对象(可以不写)
association和collection之间的区别就是前者是针对一个对象而言,后者是针对一个集合而言!
整个resultMap的功能总的来说:
当需要查询的数据用当前查询语句不能全部查询出来的时候,使用resultMap辅助查询,resultMap的作用就是在同一张表中进行我们所需要的二次查询,然后利用查询到的数据中的部分信息作为一次查询中的查询条件,从而帮助得到需要查询的数据。也可以叫做嵌套查询。