mybatis中mapUnderscoreToCamelCase-》自动驼峰法命名转换

本文详细介绍如何在SSM及SpringBoot项目中利用自动驼峰法实现数据库字段与实体类属性的无缝对接,通过简单配置即可自动转换下划线命名到驼峰命名,提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自动驼峰法命名转换:

  一: 驼峰法的用途:

            ssm项目中在mybatis配置文件中添加以下配置,可以将数据库中user_name转化成userName与实体类属性对应,   ----》如果数据库使用如user_name的命名方式,实体类采用驼峰命名。配置后无需写resultMapper将数据库字段和实体类属性对应,以下是驼峰法的配置:

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE configuration  
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
"http://mybatis.org/dtd/mybatis-3-config.dtd">  
<configuration>  

    <settings>  
        <setting name="mapUnderscoreToCamelCase" value="true" />  
    </settings>  

</configuration>
 

   二:在spring boot项目中没有mybatis.xml文件,配置文件application.properties中,加入配置项:


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


设为true表示开启驼峰转换。经过试验,两种配置方法都可以。但如果同时配置,前者mybatis.configuration.mapUnderscoreToCamelCase的优先级更高

 


 

### MyBatis 驼峰命名转换与数据库字段映射配置 MyBatis 支持通过多种方式实现驼峰命名法与数据库字段之间的转换,确保应用程序中的实体类属性能够正确映射到数据库表的列。 #### 方法一:全局设置驼峰命名转换 可以在 `mybatis-config.xml` 文件中启用自动驼峰命名转换功能。这使得 MyBatis 自动将带有下划线的数据库列名转换为 Java 实体类中的驼峰命名形式: ```xml <settings> <!-- 开启驼峰命名支持 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> ``` 此方法适用于大多数情况下的简单映射需求[^4]。 #### 方法二:使用 resultMap 定义自定义映射关系 对于更复杂的场景或当存在不遵循常规模式的情况时,可以利用 `<resultMap>` 来精确控制每一对应关系。下面是一个例子展示如何创建一个名为 `brandResultMap` 的映射器来指定特定列和对象属性间的关联: ```xml <resultMap id="brandResultMap" type="Brand"> <id column="id" property="id"/> <result column="brand_name" property="brandName"/> <result column="company_name" property="companyName"/> </resultMap> <select id="selectAllBrands" resultMap="brandResultMap"> SELECT * FROM brands; </select> ``` 这种方法提供了更大的灵活性,允许开发者针对特殊情况调整映射逻辑[^5]。 #### 方法三:在实体类上应用注解 如果项目采用的是基于注解的方式,则可以通过添加适当注解于实体类成员变量上来指明其对应的数据库列名。例如,在 MyBatis Plus 中可使用 `@TableField` 注解显式声明这种对应关系: ```java import com.baomidou.mybatisplus.annotation.TableField; public class Brand { private Long id; @TableField("brand_name") private String brandName; @TableField("company_name") private String companyName; } ``` 这种方式特别适合那些已经存在的、不符合标准命名约定的数据模型改造工作[^2]。 综上所述,MyBatis 提供了灵活多样的手段用于处理不同类型的命名差异问题,既包括简单的自动化解决方案也涵盖了面向细节的手工定制选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值