【输出映射 resultType 与 resultMap 之间的区别 _mybatis 】 | IT修真院·坑乎
问题已收录 输出映射 resultType 与 resultMap 之间的区别
我也踩过这个坑( 1 )
已统计您的踩坑,无需重复点击
回答(1)
mybatis
详细描述
错误截图
源码
编辑于2025-04-19
  • [无名弟子]黄*彬
    0

    在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。
    ①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。
    ②当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。

    而在源码上可以发现,已经把返回的对象映射,而如果选择 resultType 时,也已经没有与 键和键值 对应的对象了。此外,resultMap 和 resultType 是不能同时出现的。


    <id property="paperId" column="paper_id"/>

            <result property="paperName" column="name"/>

            <result property="paperNum" column="number"/>

            <result property="paperDetail" column="detail"/>


    编辑于2018-07-13