MaBatis使用`ResultMap`标签手动映射详解使用

文章目录

  • MaBatis使用`ResultMap`标签手动映射详解使用
    • 1、MyBatis只能自动维护库表”列名“与”属性名“相同时的对应关系,二者不同时无法自动ORM,如下:
    • 2、在SQL中使用 as 为查询字段添加列别名,以匹配属性名:
      • 但是如果我们的查询很多,都使用别名的话写起来岂不是很麻烦!
    • 3、使用`ResultMap`标签手动映射,解决实体字段和数据表字段不一致的问题

MaBatis使用ResultMap标签手动映射详解使用

1、MyBatis只能自动维护库表”列名“与”属性名“相同时的对应关系,二者不同时无法自动ORM,如下:

在这里插入图片描述

2、在SQL中使用 as 为查询字段添加列别名,以匹配属性名:

<select id="findAll" resultType="cn.fpl1116.pojo.Role" >
        select id, role_name as roleName, role_desc as roleDesc from role
    </select>

但是如果我们的查询很多,都使用别名的话写起来岂不是很麻烦!

3、使用ResultMap标签手动映射,解决实体字段和数据表字段不一致的问题

	<!--
        结果映射
            id="findAll2ResultMap" :resultMap标签的id,,必须唯一
            type="cn.fpl1116.pojo.Role":等价于resultType
    -->
    
    <resultMap id="findAll2ResultMap" type="cn.fpl1116.pojo.Role">
        <!--主键字段和属性的映射关系-->
        <id column="id" property="id"></id>
        <!--非主键字段和属性的映射关系-->
        <result column="role_name" property="roleName"></result>
        <result column="role_desc" property="roleDesc"></result>
    </resultMap>
    
    <!--
        resultMap:resultMap标签的id
    -->
    <select id="findAll2" resultMap="findAll2ResultMap">
        select * from role
    </select>

你可能感兴趣的:(JAVA全栈学习路线,#,MyBatis,mybatis,sql,java,intellij-idea)