Mybatis入门(六) ResultMap映射结果集

当我们查询时,传入的参数是一个对象时(parameterType="POJO具体类"),mybatis存在一个类型处理器(typeHandlers),会自动将数据库的字段和具体类中属性进行匹配,当数据库表格的字段和具体类的属性不一致时,如下图,查询出来的结果,pwd会对应为null,这时候就需要解决了。

Mybatis入门(六) ResultMap映射结果集   Mybatis入门(六) ResultMap映射结果集

 

 

 

 解决办法一,直接在sql语句中使用别名查询,如下:该方法粗暴简单

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

解决方法二,使用ResultMap 结果集映照,即将查询的结果先进行映射,在返回对应的类型,对应代码如下,其中select的标签中,mark要对应resultMap中id的mark,表示使用上面的映射关系,type类型为返回对象,

    <resultMap id="mark" type="user">
        <result column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="passward" property="pwd"/>
    </resultMap>

    <select id="getUserById" resultMap="mark" parameterType="int" >
        select id,`name`,passward as pwd from school.user where id = #{id}
    </select>

column 表示从数据库中查询到的字段或者别名
property 表示具体类的对应的属性值

Mybatis入门(六) ResultMap映射结果集

上一篇:LeetCode-003-无重复字符的最长子串


下一篇:D365FO Tool – Automating Start and Stop Environments