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

【Spring-MyBatis】数据库字段下划线映射到 java 对象的驼峰式命名属性

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

【Spring-MyBatis】数据库字段下划线映射到 java 对象的驼峰式命名属性

author: jwensh
date: 2022.06.26

文章目录
    • 命名规范要求
    • 方式一:mapper 中使用 @Result 注解
    • 方式二:mybatis-config.xml 配置文件
    • 参考

命名规范要求
  • 数据库使用 snake_case 格式命名表名和字段名;
  • java 类属性使用 camelCase 命名属性名;

所以产生了一个问题,spring + mybatis 下如何进行 orm 内容映射

方式一:mapper 中使用 @Result 注解
	@Select("SELECT * FROM driver_api where is_available = 1 ORDER BY ename ASC")
    @Results({
        @Result(column = "api_name", property = "apiName" )
    })
    List getAllDriverApi();
  • 在进行 sql 查询和初始化实体时 mybatis 会自动转化,写 sql 语句的时候也不必为有下划线的字段设置与实体类相同的别名;
  • 如未加配置之前的 sql 查询语句为:select id, driver_api as driverApi from driver_api
方式二:mybatis-config.xml 配置文件

在 spring 项目下 mybatis-config.xml 配置文件中添加如下设置:




    
        
        
    

或者是在 spring-boot 项目下的配置文件中:

mybatis.configuration.mapUnderscoreToCamelCase = true
或者
mybatis.configuration.map-underscore-to-camel-case = true

在 mybatis 的配置文件里加入如上的配置,就基本不用 xml 中进行字段和实体和属性的映射;

备注:

resultMap 中的 property 属性或别名要和对象中属性的名字相同,但是实际匹配是,MyBatis 会先将两者都转换为大写形式,然后再判断是否相同,即 property=“userName” 和 property=“username” 都可以匹配到对象 userName 属性上。

参考

https://mybatis.org/mybatis-3/zh/sqlmap-xml.html

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

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

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