美文网首页
mybatis resultmap

mybatis resultmap

作者: mrjunwang | 来源:发表于2018-08-31 17:47 被阅读0次

    mybatis实现查询结果集和JAVA bean映射,一种使用别名;一种使用result map
    package com.someapp.model;
    public class User {
    private int id;
    private String username;
    private String hashedPassword;

    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getUsername() {
    return username;
    }
    public void setUsername(String username) {
    this.username = username;
    }
    public String getHashedPassword() {
    return hashedPassword;
    }
    public void setHashedPassword(String hashedPassword) {
    this.hashedPassword = hashedPassword;
    }
    }
    基于 JavaBean 的规范,上面这个类有 3 个属性:id,username 和 hashedPassword。这些属性会对应到 select 语句中的列名。

    这样的一个 JavaBean 可以被映射到 ResultSet,就像映射到 HashMap 一样简单。

    <select id="selectUsers" resultType="com.someapp.model.User">
    select id, username, hashedPassword
    from some_table
    where id = #{id}
    </select>
    类型别名是你的好帮手。使用它们,你就可以不用输入类的完全限定名称了。比如:


    <typeAlias type="com.someapp.model.User" alias="User"/>


    <select id="selectUsers" resultType="User">
    select id, username, hashedPassword
    from some_table
    where id = #{id}
    </select>
    这些情况下,MyBatis 会在幕后自动创建一个 ResultMap,再基于属性名来映射列到 JavaBean 的属性上。如果列名和属性名没有精确匹配,可以在 SELECT 语句中对列使用别名(这是一个 基本的 SQL 特性)来匹配标签。比如:

    <select id="selectUsers" resultType="User">
    select
    user_id as "id",
    user_name as "userName",
    hashed_password as "hashedPassword"
    from some_table
    where id = #{id}
    </select>
    ResultMap 最优秀的地方在于,虽然你已经对它相当了解了,但是根本就不需要显式地用到他们。 上面这些简单的示例根本不需要下面这些繁琐的配置。 出于示范的原因,让我们来看看最后一个示例中,如果使用外部的 resultMap 会怎样,这也是解决列名不匹配的另外一种方式。

    <resultMap id="userResultMap" type="User">
    <id property="id" column="user_id" />
    <result property="username" column="user_name"/>
    <result property="password" column="hashed_password"/>
    </resultMap>

    相关文章

      网友评论

          本文标题:mybatis resultmap

          本文链接:https://www.haomeiwen.com/subject/lmrewftx.html