mybatis resultType和resultMap的区别

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
  1. ①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。
    ②当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。
  2. 结论:如果数据表中的字段包含下划线这种写法,最好还是用resultMap去返回;resultType返回必须保证数据库字段跟java对象的字段大小写一致。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章