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 做输出映射。