mybatis返回单一对象还是对象列表?
2017-12-15 本文已影响15人
大浪滔滔
-
调用mybatis查询数据时,返回数据类型是由dao接口的方法和xml映射文件共同决定的。
-
无论是返回单一对象还是对象列表,xml映射文件中的配置都是一样的,都是
resultMap=”***Map”
或resultType=“*.*.*”
类型.
<!-- 根据登录名查询用户 -->
<select id="getByLoginName" resultType="xlab.prong.oauth.service.model.User"
parameterType="string">
SELECT
<include refid="userColumns" />
FROM oauth_user a
WHERE a.del_flag = '0'
AND (a.prong_no=#{_parameter}
or a.mobile=#{_parameter} or
a.email=#{_parameter})
</select>
- mybatis每一次从数据库中select数据之后,都会检查数据条数和dao中定义的返回类型是否匹配。
- 若select返回一条数据,dao中定义的返回类型是对象类型或对象的List类型,则匹配成功,并将查询的数据按照dao中定义的返回类型返回。
- 若select返回多条数据,但dao中定义的返回类型是一个对象类型,则无法将多条数据映射为一个对象,此时mybatis报错。