当前位置:   article > 正文

关于MybatisPlus和Mybatis_请简述mybatisplus与mybatis之间的关系是什么?

请简述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());
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

在这里插入图片描述

然后再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 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/201438
推荐阅读
相关标签
  

闽ICP备14008679号