From 52647fe4bd4ac536d42a9c15647a6120334fea77 Mon Sep 17 00:00:00 2001 From: quanhengf Date: Sat, 14 Dec 2019 22:42:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E6=9E=90=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../核心处理层/1、MyBatis初始化.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/docs/Mybatis/核心处理层/1、MyBatis初始化.md b/docs/Mybatis/核心处理层/1、MyBatis初始化.md index 9b5b151..aaa54aa 100644 --- a/docs/Mybatis/核心处理层/1、MyBatis初始化.md +++ b/docs/Mybatis/核心处理层/1、MyBatis初始化.md @@ -411,7 +411,37 @@ public class ResultMapping { private boolean lazy; } ``` +另一个比较重要的类是ResultMap,每个<resultMap>节点都会被解析成一个ResultMap对象,其中每个节点所定义的映射关系,则使用ResultMapping对象表示。 +```java +public class ResultMap { + private Configuration configuration; + // 这些属性一一对应了中的属性 + private String id; + private Class type; + // 记录了除节点之外的其它映射关系(即,ResultMapping对象集合) + private List resultMappings; + // 记录了映射关系中带有ID标志的映射关系,如:节点和节点的子节点 + private List idResultMappings; + // 记录了映射关系中带有Constructor标志的映射关系,如:所有子元素 + private List constructorResultMappings; + // 记录了映射关系中不带有Constructor标志的映射关系 + private List propertyResultMappings; + // 记录了所有映射关系中涉及的column属性的集合 + private Set mappedColumns; + // 记录了所有映射关系中涉及的property属性的集合 + private Set mappedProperties; + // 鉴别器,对应节点 + private Discriminator discriminator; + // 是否含有嵌套的结果映射,如果某个映射关系中存在resultMap属性, + // 且不存在resultSet属性,则为true + private boolean hasNestedResultMaps; + // 是否含有嵌套查询,如果某个属性映射存在select属性,则为true + private boolean hasNestedQueries; + // 是否开启自动映射 + private Boolean autoMapping; +} +``` ### 3.2 解析<sql>节点