![9c2113dd1f24263c99bee6e55f61fb84.png](https://img-blog.csdnimg.cn/img_convert/9c2113dd1f24263c99bee6e55f61fb84.png)
本文章将讲述:
mybatis resultMap 标签的作用
resultMap 标签中 子标签 result 的使用分析
resultMap 标签中 主键标签 id 的使用分析
resultMap 中使用到的 jdbctype 与 java 数据类型映射关系
1 简述
resultMap标签是为了映射select查询出来结果的集合,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中。
那么resultMap标签的主要作用是将实体类中的字段与数据库表中的字段进行关联映射。
2 基本使用
例如 我们使用 mybatis 根据 id 来查询一个用户的基本信息,最简单的单表查询
用户实体
/** * 用户实体 */public class UserBean implements Serializable { private int id; private String userName; private String realName; private int age; ... ... get set 方法省略 }
对应的 mapper.xml
<?xml version="1.0" encoding="UTF-8"?> select * from tb_user where id = #{id}
在这里 我们通过 resultMap 标签中的 result 子标签映射基本数据类型,通过 property 属性与 column 属性将 实体类与查询结果集关联在了一起
3 resultMap 标签的使用分析
3.1 resultMap 标签中的属性配置分析
- id 可自定义,用来做对 对应数据实体类的唯一映射标识,例如在下面的 select 查询语句中,resultMap 指定的值就是对应实体类 resultMap 中设置的 id值
- type 是指定当明 resultMap 要映射的数据结果对应的javabean 实体类的路径
如下图所示:
![20ddeb3f41d05641abbb50c1ea03c325.png](https://img-blog.csdnimg.cn/img_convert/20ddeb3f41d05641abbb50c1ea03c325.png)
3.2 子标签 result 使用分析
result 用来配制 非主键的映射 ,如上图中写的的用户的基本数据,例如 实体UserBean中的userName属性与sql查询结果中的user_name,可通过配置如下实现数据映射,
其中 jdbcType 用来配制基本数据类型
上面描述的是 一一对应的映射,分别指定 JavaBean 实体中的属性名与 查询结果集中的列名来实现数据映射 ,如果实体类中的属性名称与 查询结果集中的列名一致,那在这里不写 result 映射,mybatis 将会实现自动映射。
3.3 子标签 id 使用分析
resultMap 标签中的子标签 id 用来标识出对象的唯一性,比如用户表的主键
![160ea19d6093b3a154193dd8924a8939.png](https://img-blog.csdnimg.cn/img_convert/160ea19d6093b3a154193dd8924a8939.png)
它的用法与 result 标签的使用基本上一致,不同的是,id 标签必须写在result 标签上面,或者说是 resultMap 标签中的第一行。