【MyBatis】ResultMap结果集映射

之前的例子中,pojo类的属性和数据库表的属性列的名字是一一对应的,这样MyBatis会自动将pojo类的属性和数据库表属性联系起来,但是实际生产环境中,pojo类的属性不一定和数据库表一一对应,这时候需要我们手动建立映射关系。

下面举一个简单的例子,首先数据库创建一个简单的User表
在这里插入图片描述
然后创建一个pojo类

public class User {
    private String id;
    private String name;
    private String password;
}

我们可以看到,在数据库中密码字段称为pwd,在pojo类中称为password。解决办法有如下几种:
1.在SQL语句中起别名

    <select id="getAllUser" resultType="com.hch.pojo.User">
        select id,name,psw as password from mybatis.user;
    select>

2.使用ResultMap类型解决
ResultMap是一个结果集映射,可以将数据库的属性集和pojo类的属性集进行映射。

    <resultMap id="UserMap" type="com.hch.pojo.User">
        
        <result column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="psw" property="password"/>
    resultMap>

    
    <select id="getAllUser" resultMap="UserMap">
        select * from mybatis.user;
    select>

可以看到,UserMap是在mapper.xml中创建的映射集合,然后使用在SQL语句模块中完成映射。ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。

你可能感兴趣的:(MyBatis,mybatis,数据库,mysql)