resultmap是mybatis中最复杂的元素之一,它描述如何从结果集中加载对象,主要作用是定义映射规则、级联的更新、定制类型转化器。
1、1.id和result元素
id、result是最简单的映射,id为主键映射;result其他基本数据库表字段到实体类属性的映射。
2、CONSTRUCTOR 构造器
在resultMap中,通常使用id、result子元素把Java实体类的属性映射到数据库表的字段上。但是如果在遇到JavaBean没有无参构造函数时,我还需要使用构造器元素实现一个JavaBean的实例化和数据注入。
3、结果集处理方法
(1)使用map储存结果集
一般情况下,所有select语句都可以使用map储存,但是使用map就意味着可读性的下降。(不推荐使用)
(2)使用POJO储存结果集
一般我们都使用POJO储存查询结果。我们可以使用select自动映射,还可以使用select语句中的resultMap属性配置映射集合,不过需要提前定义resultMap。 (推荐使用)
4、级联
1.association 一对一级联
以emp为例,emp类中添加一个dept部门属性,这样就行成了emp与dept的一对一级联
2.collection 一对多级联
再dept类中加入员工属性,(一个员工只能属于一个部门,一个部门中可以有多个员工)。
在映射器中添加collection,一对多级联。