- 1、通过字段别名解决字段名和属性名的映射关系
- 2、通过全局配置mapUnderscoreToCamelCase解决字段名和属性名的映射关系
- 3、通过resultMap解决字段名和属性名的映射关系
配合文章: IDEA Intellij中MyBatis框架搭建全过程及MyBatis工程基本的使用方法
如果能成功查询到数据库信息证明框架搭建基本没问题了
但我们可以发现empName显示的为null
原因是在设置实体类时我们对数据库表中的emp_name字段使用的属性名为empName,导致无法映射到对应的字段名。但!这是因为字段名有字段名的规则,属性名有属性名的规则,所以这样是没问题的,但要想要成功访问到对应的字段,需要 解决字段名和属性名的映射关系!
以下介绍MyBatis中解决字段名和属性名的映射关系的几种方法 1、通过字段别名解决字段名和属性名的映射关系
在映射文件中的SQL语句中将各个字段名写出来,把字段名与属性名不一致的字段 设置一个与属性名一致的别名
运行测试文件可以发现问题得到了解决:
在mybatis-config.xml配置文件中添加一个全局配置mapUnderscoreToCamelCase,并将其值value设为true:
相关代码:
注释掉使用字段别名的SQL语句对其进行测试:
运行测试代码可发现字段可以正常显示:
在映射文件中将resultType改为resultMap并通过resultMap设置自定义的映射关系
这里要提到的是:若使用resultType则使用的是默认的映射关系,而使用resultMap的话使用的是通过resultMap自定义的映射关系
相关代码:
select * from t_emp
注意resultMap自定义映射关系中,
设置的是id字段的映射关系, 设置的是普通字段的映射关系
property中设置的是属性名,column设置的是字段名,注意column中的字段名要与数据库表的字段名保持一致,property中的属性名要与实体类中的属性名保持一致!
resultMap中相关标签和属性的含义:
注释掉之前使用resultType的SQL语句和之前配置的全局配置进行测试
可以看到能正常输出:



