Springboot整合mybatis,配置驼峰命名转换(例:userId --user_id)

如题:两种配置方式

1.

springboot的配置文件 添加:

mybatis.configuration.mapUnderscoreToCamelCase=true 或

mybatis.configuration.map-underscore-to-camel-case=true(根据版本不同)

2.通过@configuration配置的方式

@Bean(name = "sqlSessionFactory")
    public SqlSessionFactory sqlSessionFactoryBean() throws IOException {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        bean.setMapperLocations(resolver.getResources("classpath:/mapper/**/**.xml"));
        try {
            //开启驼峰命名转换
            bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
            return bean.getObject();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }

 

### MyBatis 驼峰命名配置及使用教程 #### 1. 配置驼峰命名规则 为了使数据库字段名(通常是下划线风格)能够自动映射到 Java 实体类的属性名(通常是驼峰风格),可以在 `application.properties` 或者 `application.yml` 文件中启用驼峰命名转换。 对于 `application.properties` 文件: ```properties mybatis.configuration.mapUnderscoreToCamelCase=true ``` 而对于 `application.yml` 文件,则应按照 YAML 的语法结构来编写[^2]: ```yaml mybatis: configuration: map-underscore-to-camel-case: true ``` 以上任一种方式都可以实现相同的效果,即当从数据库读取数据时,如果遇到形如 `create_time` 这样的列名会自动转化为对应的驼峰形式 `createTime` 属性填充给相应的实体对象;反之亦然,在向数据库插入记录的时候也会做类似的处理[^3]。 #### 2. 使用示 假设有一个名为 `users` 的表,其中包含两个字段:`user_id` 和 `first_name`。相应地,在应用程序中有这样一个 User 类作为该表格的数据传输对象 (DTO),其成员变量分别为 `userId` 及 `firstName`。 此时无需额外定义任何 ResultMap 映射关系即可完成两者之间的无缝对接,因为开启了驼峰命名支持之后框架本身就会负责这项工作[^1]。 ```java public class User { private Long userId; private String firstName; // getters and setters... } ``` 通过上述设置,即使 SQL 查询返回的结果集中存在带有下划线的名字,也能被正确解析并赋值给目标 POJO 对象内的同义词版本字段上去了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值