Mybatis的ResultMap对column和property的理解

select元素有很多属性(这里说用的比较多的):

 

id:命名空间唯一标识,可以被用来引用这条语句

parameterType:将会传入这条语句的参数类的完全限定名或者别名

resultType:从这条语句要返回的期望类型的类的完全限定名或别名(这里注意下集合类型,应该是集合可以包含的类型,不能是集合本身),重要:使用resultType或resultMap,但不能同时使用。

resultMap:命名引用外部的resultMap,其名称要和外部的resultMap元素的ID名称一致,用于映射其结果到实体类指定对象中。

 

那么什么时候我们知道使用resultMap,什么时候又使用resultType呢?

 

①当去select一张表时,可以使用resultType,这些情况下,MyBatis会在幕后自动创建一个ReusltMap,基于属性名来映射到JavaBean属性上

②所以在使用resultMap时,就必须要写上resultMap相对应的xml

③为了方便我们开发出错,在没有特别要求的情况下,column名可以完全和property名称一致,否则当我们没有对应上的时候,数据库匹配不到,会将某某参数值变为大写,导致我们本来获取小写的参数名,结果没有获取到,后台报错,得不偿失啊!

 

最后说下,sql中比如,有 andm.id = #{id ,jdbcType=VARCHAR } 要标明jdbcType为什么呢?

 

解释:

如果你映射了一个javabean,MyBatis通常可以断定类型(项目里好多都要写,我也不知道为啥),然而,如果你映射到的是比如:HashMap,那么应该明确指定的jdbcType来保证所需的行为

 

来源:

https://blog.csdn.net/u013364878/article/details/78658232

https://blog.csdn.net/JAYU_37/article/details/105670097#resultMap_540

posted @ 2021-02-03 23:33  雨融风  阅读(257)  评论(0)    收藏  举报