您的位置:首页 > 其它

mybatis resultType和resultMap的区别

2017-02-07 16:15 585 查看
ResultMap:

<resultMap id="BaseResultMap" type="cn.cloudwalk.syeb.core.gov.model.smileFaceStatistics.SmileFaceStatistics" >
<id column="id" property="id" jdbcType="VARCHAR" />
<result column="deviceId" property="deviceId" jdbcType="VARCHAR" />
<result column="photographNum" property="photographNum" jdbcType="INTEGER" />
<result column="beautifulNum" property="beautifulNum" jdbcType="INTEGER" />
<result column="fairBankNum" property="fairBankNum" jdbcType="INTEGER" />
<result column="changeFaceNum" property="changeFaceNum" jdbcType="INTEGER" />
<result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
</resultMap>


ResultType:

cn.cloudwalk.syeb.core.gov.model.smileFaceStatistics.SmileFaceStatistics


①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。

②当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。

结论:如果数据表中的字段包含下划线这种写法,最好还是用resultMap去返回;resultType返回必须保证数据库字段跟java对象的字段大小写一致。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis