当前位置: 代码网 > it编程>编程语言>Java > SpringBoot同时集成Mybatis和Mybatis-plus框架

SpringBoot同时集成Mybatis和Mybatis-plus框架

2024年12月07日 Java 我要评论
1. 背景mybatis-plus可以生成crud,减少开发中sql编写量,但是某些情况下我们需要多表关联查询,这时候mybatis可以手写sql的优势就体现出来了,在实际开发中,项目里面一般都是my

1. 背景

mybatis-plus可以生成crud,减少开发中sql编写量,但是某些情况下我们需要多表关联查询,这时候mybatis可以手写sql的优势就体现出来了,在实际开发中,项目里面一般都是mybatis和mybatis-plus公用,但是公用有版本不兼容的问题。下面这篇文章主要介绍如何在项目中同时集成mybatis和mybatis-plus。

2. 前期准备

引入相关的jar包

<!--  mybatis依赖    -->
<dependency>
    <groupid>org.mybatis.spring.boot</groupid>
    <artifactid>mybatis-spring-boot-starter</artifactid>
    <version>2.2.2</version>
</dependency>

<dependency>
    <groupid>com.baomidou</groupid>
    <artifactid>mybatis-plus-boot-starter</artifactid>
    <version>3.5.2</version>
 </dependency>

<!--引入autoconfigure-->
<dependency>
	<groupid>org.mybatis.spring.boot</groupid>
	<artifactid>mybatis-spring-boot-autoconfigure</artifactid>
	<version>2.1.4</version>
</dependency>

3. 不兼容问题

 如果是单纯的引入完两个jar包,就开始使用这样是会抛出下面的异常

 这个异常也是常见的,不少后端开发可能都遇到过,绑定异常,意思是识别不了对应的mapper.xml

有人说是版本不兼容问题,我把mybatis(2.1.3)和mybatis-plus(3.3.0)替换成他们说的版本依然无解。单单只是替换版本是解决不了的

如果你最初项目中是已经集成了mybatis或者mybatis-plus;先集成mybatis的项目再集成mybatis-plus,这个时候application.yml配置文件需要做出修改,即将原 mybatis 改成 mybatis-plus即可。

原mybatis配置

mybatis:
  type-aliases-package: com.xxxx.shortchain.entity
  mapper-locations: classpath*:mappers/**/*.xml
  configuration:
      log-impl: org.apache.ibatis.logging.stdout.stdoutimpl
  map-underscore-to-camel-case: true

改成mybatis-plus配置

mybatis-plus:
  type-aliases-package: com.xxxx.shortchain.entity
  mapper-locations: classpath*:/mappers/*.xml,classpath*:/mappers/**/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.stdoutimpl
    mapunderscoretocamelcase: true  #自动转驼峰 true开启

根据自己xml的实际路径修改。

4. jar包冲突

在集成mybatis和mybatis-plus时,也可能会遇到jar包冲突的情况,这时候我们可以排除一些jar包来解决冲突。

4.1 mybatis中

        <dependency>
            <groupid>org.mybatis.spring.boot</groupid>
            <artifactid>mybatis-spring-boot-starter</artifactid>
            <version>2.2.2</version>
            <!--原mybatis中需排除下面2个依赖-->
            <exclusions>
                <exclusion>
                    <groupid>org.mybatis</groupid>
                    <artifactid>mybatis</artifactid>
                </exclusion>
                <exclusion>
                    <groupid>org.mybatis</groupid>
                    <artifactid>mybatis-spring</artifactid>
                </exclusion>
            </exclusions>
        </dependency>

4.2 分页插件pagehelper中

        <dependency>
            <groupid>com.github.pagehelper</groupid>
            <artifactid>pagehelper-spring-boot-starter</artifactid>
            <version>1.2.3</version>
            <!--需排除下面包-->
            <exclusions>
                <exclusion>
                    <groupid>org.mybatis.spring.boot</groupid>
                    <artifactid>mybatis-spring-boot-starter</artifactid>
                </exclusion>
            </exclusions>
        </dependency>

至此,springboot同时集成mybatis和mybatis-plus就已经完成了。可以正常启动项目进行测试了

        datetime datetime = dateutil.beginofday(new date());
        querywrapper<shortchain> querywrapper = new querywrapper<>();
        lambdaquerywrapper<shortchain> lambda = querywrapper.lambda();
        lambda.ge(shortchain::getexpiredate, datetime).eq(shortchain::getdeleted, 0);
        list<shortchain> shortchains = shortchainmapper.selectlist(querywrapper);

 使用mybatis-plus也能正常查询数据行

到此这篇关于springboot同时集成mybatis和mybatis-plus框架的文章就介绍到这了,更多相关springboot同时集成mybatis和mybatis-plus内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com