mybatis 多表关联__手动处理映射关系
mybatis 多表关联__手动处理映射关系
1.1 当pojo里面的javabean属性名和表的字段不一样时,mapper不能自动映射到


1.2 处理方法
resultMap 标签是 Mybatis 最强大的元素,它可以将查询到的复杂数据(比如查询到几个表 中数据)映射到一个结果集当中
1.3resultMap 的基础使用场景
在 Mybatis 中如果查询的结果集的列名与 POJO 的属性名相同,那么我们是不需要在 Mybatis 中配置映射关系的,但是当查询到的结果集的列名与 POJO 的属性名不匹配时, Mybatis 是无法完成影射处理的。 解决方案:
通过定义列别名的方式来解决该问题。
就是写mysql查询时 用 select userid as id from users 改名
通过在 resultMap 标签中定义映射关系来解决该问题。
mapper配置
点击查看代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bjsxt.mapper.UsersMapper">
<!-- type 对应javabea-->
<resultMap id="UsersMapper" type="com.bjsxt.pojo.Users" >
<!-- property 对应pojo那边的属性,column 对应sql 字段名-->
<!-- 主键对应id-->
<id property="userid" column="id"/>
<!-- 剩下的用result-->
<result property="username" column="name"/>
<result property="usersex" column="sex"/>
</resultMap>
<!-- 这里也要改为resultMap="UsersMapper"-->
<select id="selectUsersAll" resultMap="UsersMapper">
select userid as id,username as name,usersex as sex from users
</select>
</mapper>

浙公网安备 33010602011771号