一文读懂Mybatis之常用标签

  1. < resultMap>

默认情况下, MyBatis会进行自动映射(Auto-Mapping), 数据库表格的列名和对象的属性名如果同名(或者分别符合java属性名和mysql数据库字段名,可以在核心配置文件设置setting标签为mapUnderscoreToCamelCase), MyBatis会进行自动赋值. 但是有些时候, 列名和属性名可能不同. 此时, MyBatis允许程序员自己定义列名和属性名的映射关系. 需要配置resultMap属性使用. 如果使用了resultType属性, 表示自动映射, 如果使用了resultMap属性, 表示手动映射.
这就解释为什么要使用resultMap标签?
如果不使用那么自动映射就会匹配不上,不能完成赋值(这里底层是通过反射拼接set方法来完成赋值功能的,首先通过反射拿到对象,在拿到对象的属性,在拿到属性名,拼接set+属性名,来得到set方法),所以如果当我们查询到数据但是不能根据数据库中的字段对应到对象的属性,那么就不能完成赋值.如下图在这里插入图片描述
正确做法如下:
在这里插入图片描述
注意:
1)其实id标签和result标签的作用一样,可以随便用,但是为了见名知意,还是主键用id,非主键用result,
2)如果列名和属性名一样可以不用写,这里的auto-mapping是默认打开的,也就是自动映射.

发布了219 篇原创文章 · 获赞 352 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_42859864/article/details/103736212