Mybatis之ResultMap和ResultType

版权声明:版权所有,谢绝转载。 https://blog.csdn.net/tales522/article/details/89072724

在写MyBatis mapper xml文件时,对于返回的数据会映射到对象中,ResultMap和ResultType和mapUnderscoreToCamelCase都是控制这种映射关系的,因为数据库字段命名和实体类property name未必对应,所以需要手动控制这种映射关系,mapUnderscoreToCamelCase配置是让数据库下划线命名方式能对应成驼峰命名,如数据库字段名user_name,实体属性名userName,开启mapUnderscoreToCamelCase=true之后,mybatis自动能识别这种对应关系,查询和更新都能识别这种对应关系。resutlType的使用比较简单,直接给一个实体类型即可,当然可以通过配置别名(注解和配置文件都行),resultMap的话就需要自己配置字段对应关系,并指定实体类型,然后使用的时候给定resultMap的相应id即可,resultMap能映射复杂到POJO,resultType只能映射到简单的没有嵌套没有集合的类型。

还需要说明的是@Column这个注解,属于JPA规范,不要误认为是MyBatis相关定义,他的作用是我们通过类型创建表的时候有用,在进行数据库查询和修改时是不需要的,而且我们推荐的做法是手动设计表并创建,而不是通过代码创建,所以按照这种原则,你的代码中是不会需要使用这种注解的。

所以这里有几种组合方式:

1 数据库字段名使用形如user_name命名方式,实体属性使用userName驼峰命名方式,开启mapUnderscoreToCamelCase=true后,直接使用resultType即可完成映射。

2 数据库字段名和实体属性名忽略大小写后串相等,如UserName和userName,可以直接使用resultType完成映射。

3 数据库字段名和实体属性名串忽略大小写和下划线后串不等,如user_name和name,就需要配置resultMap来完成这种不等值映射。

猜你喜欢

转载自blog.csdn.net/tales522/article/details/89072724