一、写在前面
在MyBatis 的全局配置文件中我们可以通过在settings标签中设置
<setting name="mapUnderscoreToCamelCase" value="true"/>来开启驼峰命名法,实现数据库中的字段名与JavaBean 中属性的关系映射。
在数据库中一般使用单词来定义列名,多个列名之间用’ _ ‘分隔开,比如department_name,在JavaBean 中一般使用驼峰命名来定义属性,所以会定义为departmentName。在默认不开启驼峰命名法的情况下,它们之间是不能够实现关系映射的,在开启对驼峰命名法的支持后,MyBatis 会对数据库中的字段进行驼峰命名转换。
但是有的时候,开启驼峰命名法也不能完成映射,比如数据库字段dept_name对应JavaBean 中的departmentName,这时候就需要我们自定义resultMap关系映射。
二、resultMap自定义映射规则
使用resultMap实现数据库中的dept_name字段与JavaBean 中的departmentName的关系映射。
mapper 接口:
// 通过id 查询部门信息,返回的是一个Department 对象
Department getDeptById(Integer id);
SQL 映射文件:
<!--
先通过resultMap 定义映射规则
id:当前命名空间中的一个唯一标识,用于标识一个resultMap
type:类的完全限定名, 或者一个类型别名,也就是返回的对应JavaBean 类型
-->
<resultMap id="BaseDeptResultMap" type="com.jas.mybatis.bean.Department">
<!--
<id>:与下面<result>标签的区别是可以用于提升性能,所以这里用<id>标签来定义主键的映射关系
column:数据库中对应的字段名
property:对应JavaBean 的属性名
因为可以实现自动映射,所以<id column="id" property="id"/> 在这里也可以省略
如果开启了驼峰命名法,对应的映射转换也可以省略
-->
<id column="id" property="id"/>
<

本文介绍了如何在MyBatis中使用resultMap进行自定义映射规则,解决数据库字段与JavaBean属性之间的映射问题。通过示例展示了如何实现关联映射,包括一对一和一对多的查询,以满足复杂的数据获取需求。文章还总结了resultMap在高级映射和延迟加载等方面的重要作用。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



