首页 > 其他 > 详细

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

时间:2021-08-30 06:18:31      阅读:14      评论:0      收藏:0      [点我收藏+]

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

技术分享图片   技术分享图片

 

 

 

 解决办法一,直接在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映射结果集

原文:https://www.cnblogs.com/carry-huang/p/15203163.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!