关于MybatisPlus和Mybatis

和Mybatis的联系

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 禁止大写变下划线+小写

额外我又想看一下他的默认配置是什么
在这里插入图片描述
在这里插入图片描述

发现配置类没有加载到spring环境中

测试类打印报错,后来发现MybatisConfiguration类上并没有任何注解,也就是没有加载到spring环境中

 @Autowired		
    Configurations configuration;
    @Test
    public void testDataSource() throws Exception {
            System.out.println(configuration.isMapUnderscoreToCamelCase());
    }

Unsatisfied dependency expressed through field 'configuration';

通过打印相关bean,找到了办法

于是我就获取所有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

这里看到默认为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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值