栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis中解决字段名和属性名的映射关系的几种方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis中解决字段名和属性名的映射关系的几种方法

文章目录
  • 1、通过字段别名解决字段名和属性名的映射关系
  • 2、通过全局配置mapUnderscoreToCamelCase解决字段名和属性名的映射关系
  • 3、通过resultMap解决字段名和属性名的映射关系

配合文章: IDEA Intellij中MyBatis框架搭建全过程及MyBatis工程基本的使用方法

如果能成功查询到数据库信息证明框架搭建基本没问题了
但我们可以发现empName显示的为null
原因是在设置实体类时我们对数据库表中的emp_name字段使用的属性名为empName,导致无法映射到对应的字段名。但!这是因为字段名有字段名的规则,属性名有属性名的规则,所以这样是没问题的,但要想要成功访问到对应的字段,需要 解决字段名和属性名的映射关系!
以下介绍MyBatis中解决字段名和属性名的映射关系的几种方法

1、通过字段别名解决字段名和属性名的映射关系

在映射文件中的SQL语句中将各个字段名写出来,把字段名与属性名不一致的字段 设置一个与属性名一致的别名

运行测试文件可以发现问题得到了解决:

2、通过全局配置mapUnderscoreToCamelCase解决字段名和属性名的映射关系

在mybatis-config.xml配置文件中添加一个全局配置mapUnderscoreToCamelCase,并将其值value设为true:

相关代码:


    

        
    

注释掉使用字段别名的SQL语句对其进行测试:

运行测试代码可发现字段可以正常显示:

3、通过resultMap解决字段名和属性名的映射关系

在映射文件中将resultType改为resultMap并通过resultMap设置自定义的映射关系


这里要提到的是:若使用resultType则使用的是默认的映射关系,而使用resultMap的话使用的是通过resultMap自定义的映射关系
相关代码:


    
        
        
        
        
        
    

    
    
        select * from t_emp
    

注意resultMap自定义映射关系中,设置的是id字段的映射关系,设置的是普通字段的映射关系
property中设置的是属性名,column设置的是字段名,注意column中的字段名要与数据库表的字段名保持一致,property中的属性名要与实体类中的属性名保持一致!

resultMap中相关标签和属性的含义:

注释掉之前使用resultType的SQL语句和之前配置的全局配置进行测试
可以看到能正常输出:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1013314.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号