mybatis-plus怎么针对mapper设置驼峰规则
时间: 2023-11-17 07:12:26 浏览: 91
SpringBoot+Mybatis,返回Map的时候,将Map内的Key转换为驼峰的命名
MyBatis-Plus 默认开启了驼峰命名规则,但如果你的 Mapper 接口方法名或 SQL 语句中使用下划线命名法,则需要进行配置。
可以在 MyBatis-Plus 的配置文件中配置全局的映射规则,例如:
```java
@Configuration
public class MybatisPlusConfig {
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return configuration -> configuration.setObjectWrapperFactory(new MybatisMapWrapperFactory());
}
/**
* 自定义 Map 转换器
*/
public static class MybatisMapWrapperFactory extends DefaultObjectWrapperFactory {
@Override
public boolean hasWrapperFor(Object o) {
return o != null && o.getClass() == Map.class;
}
@Override
public ObjectWrapper getWrapperFor(MetaObject metaObject, Object o) {
return super.getWrapperFor(metaObject, new MybatisMap((Map<String, Object>) o));
}
}
/**
* 自定义 Map 实现类
*/
public static class MybatisMap extends HashMap<String, Object> {
public MybatisMap(Map<String, Object> map) {
super(map);
}
@Override
public Object put(String key, Object value) {
return super.put(StringUtils.camelToUnderline(key), value);
}
}
}
```
上述代码中,我们自定义了一个 Map 实现类 `MybatisMap`,用于将 Map 中的 key(字段名)进行驼峰转下划线的操作。并在 MyBatis-Plus 配置文件中配置了一个全局的配置器 `ConfigurationCustomizer`,用于将 `MybatisMap` 作为默认的 `ObjectWrapper` 实现类。
这样,我们在 Mapper 中查询的时候,就可以使用驼峰命名规则了。例如:
```java
@Select("select id, user_name as userName, password from user where id = #{id}")
User selectById(@Param("id") Long id);
```
注意:上述方式只是一种实现方式,还可以通过其他方式来实现,例如使用 MyBatis-Plus 提供的 `IKeyGenerator` 接口。
阅读全文