Mybatis 笔记 010(ResultMap结果集映射)

内容来自B站【狂神说Java】Mybatis最新完整教程IDEA版通俗易懂

解决属性名和字段名不一致的问题

1. 问题

数据库中的字段

新建一个项目,拷贝之前的,测试实体类字段不一致的情况

package org.example.mybatis03.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {

    private Integer id;
    private String name;
    private String password;

}

测试出现问题

解决方法:起别名

    <select id="getUserById" parameterType="int" resultType="user">
        select id, name, pwd as password from `user` where id = #{id}
    </select>

2. resultMap

结果集映射

    <!-- 结果集映射 -->
    <resultMap id="userMap" type="user">
        <!-- column 数据库中的字段,property 实体类中的属性-->
        <result column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="pwd" property="password"/>
    </resultMap>

    <select id="getUserById" parameterType="int" resultMap="userMap">
        select * from `user` where id = #{id}
    </select>
  • resultMap元素是 MyBatis 中最重要最强大的元素。
  • ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。
  • ResultMap 的优秀之处——你完全可以不用显式地配置它们。
    <!-- 结果集映射 -->
    <resultMap id="userMap" type="user">
        <!-- column 数据库中的字段,property 实体类中的属性-->
        <!--<result column="id" property="id"/>
        <result column="name" property="name"/>-->
        <result column="pwd" property="password"/>
    </resultMap>
  • 如果这个世界总是这么简单就好了。
posted @ 2022-05-03 12:02  君子键  阅读(6)  评论(0)    收藏  举报