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對象的字段大小寫一致。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章