赞
踩
Mybatis-Plus是一个Mybatis的增强工具,它在Mybatis的基础上做了增强,却不做改变。我们在使用Mybatis-Plus之后还够正常使用Mybatis的原生功能。MP还提供了一些很有意思的插件,比如SQL性能监控、乐观锁、逻辑删除,执行分析等。
使用Mybatis,每当要写一个业务逻辑的时候都要在DAO层写一个方法,再对应一个SQL,即使是简单的条件查询、即使仅仅改变了一个条件都要在DAO层新增一个方法,而用MP,用构造器就方便多了
从这个截图中我们也可以看到再mp的依赖子包的子包下既有Mybatis的依赖
首先在我不知道数据库字段规范以小写加下划线形式时(规范:user_name)我用了userName,那么MP生成sql时会自动把大写转成下划线小写,比如你实体类属性userName ,会改成 select user_name 而你数据库字段是userName,
这时候你可以使用在配置文件中添加
mybatis-plus.configuration.map-underscore-to-camel-case=false 禁止大写变下划线+小写
额外我又想看一下他的默认配置是什么
测试类打印报错,后来发现MybatisConfiguration类上并没有任何注解,也就是没有加载到spring环境中
@Autowired
Configurations configuration;
@Test
public void testDataSource() throws Exception {
System.out.println(configuration.isMapUnderscoreToCamelCase());
}
Unsatisfied dependency expressed through field 'configuration';
于是我就获取所有bean,然后过滤一下只打印和MP相关的
@Autowired
ApplicationContext applicationContext;
@org.junit.Test
public void testDataSource() throws Exception {
String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames();
Arrays.stream(beanDefinitionNames).filter(x->x.contains("Mybatis")).forEach(System.out::println);
}
然后再MybatisPlusProperties找到了
这里看到默认为true,说明大家都认可这个规范,数据库字段名采用下划线连接而不是驼峰命名,实体类采用驼峰命名
然后我就看到方法内部,打印一下
@Autowired
MybatisPlusProperties mybatisPlusProperties;
@org.junit.Test
public void testDataSource() throws Exception {
System.out.println(mybatisPlusProperties.getConfiguration().isMapUnderscoreToCamelCase());
}
```
**输出 false** //因为我application.properties配置了false,默认true
·个人测试 ·另外当你未在配置文件配置mp配置时,会报空指针异常,因为没有配置他就用自己默认配置了,Configuration是null
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。