自动映射

可在settings中进行配置

autoMappingBehavior

select的字段名映射到resultType类的同名属性

select id,user_name => User(id,user_name)

可使用SQL语句的AS别名,灵活性高

默认值为PARTIAL

可选值 说明
NON 不映射
PARTIAL 非嵌套映射
FULL 嵌套映射

mapUnderscoreToCamelCase

select的字段(下划线列明)映射到resultType类的驼峰命名

select id,user_name => User(id,userName)

灵活性低,严格按照转换规则

map

使用map映射结果集,即Map<字段名, 值>

设置resultType="map"即可

可读性差

resultMap

自定义映射规则

1
2
3
4
5
6
7
8
9
<resultMap id="该resultMap的id" type="对应的类全限定名或别名">
<!--该类的构造函数,可以没有-->
<constructor>
<idArg column="主键名" javaType="Java类型"/>
<arg column="字段名" javaType="Java类型"/>
</constructor>
<id column="主键名" jdbcType="字段类型" property="对应该类的属性名"/>
<result column="字段名" jdbcType="字段类型" property="对应该类的属性名"/>
</resultMap>

MyBatis自带的别名详见: https://mybatis.org/mybatis-3/zh/configuration.html#typeAliases
其中,以“_”开头的别名表示基础类型

resultMap的属性

属性 说明
id resultMapid
type 类全限定名或别名
autoMapping 是否自动映射

会覆盖全局settingautoMappingBehavior

元素

元素 功能
constructor 构造函数,可以没有
idArg ID列,可提高性能
arg 其他参数
id ID列,可提高性能
result 其他列

元素的属性

属性 说明
column 列名/字段名
jdbcType 该列的数据库类型
javaType 该字段映射的Java类型
property 该字段对应的类属性
typeHandler jdbcType和javaType的转换器