Mybatis输出映射

2018-07-29  本文已影响0人  神豪VS勇士赢

输出映射就是返回结果[针对查询]

返回结果有如下两种形式:

resultType
需要查询的列名和映射对象的属性名一致,才能映射成功。
若查询的sql列名有别名,这个别名就是和属性映射的列名。
案例:带下划线字段查询测试;别名映射成功确认。

resultMap
不需要查询的列名和映射的属性名必须一致。但是需要声明一个resultMap,来对列名和属性名进行映射。

没有映射成功的情况: 发现输出信息为空 看,证明这是没有映射成功


image.png

问题的解决方案:
1.1. 方案一:加别名


image.png

学会使用调试:


image.png

1.2. 方案二:使用resultMap
<resultMap id="BaseResultMap" type="com.qf.pojo.Userinfo">

<id column="uid" jdbcType="BIGINT" property="uid" />

<result column="user_name" jdbcType="VARCHAR" property="userName" />
<result column="user_pass" jdbcType="VARCHAR" property="userPass" /> </resultMap>

把数据库中表的字段和POJO中的属性名称做了一一映射。所以就解决了下划线的问题。


image.png
image.png

SQL片段:
可以把公共的部分抽取出来:
<sql id="Base_Column_List"> uid, user_name, user_pass </sql>


image.png

上面两种解决方案,就解决了数据库表中字段名称和POJO中属性名称不一致的问题。

当我们使用Mybatis插件的时候自动生成的代码就是按照 resultMap 做输出映射。

上一篇下一篇

猜你喜欢

热点阅读