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

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.entitymapper-locations: classpath*:mappers/**/*.xmlconfiguration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplmap-underscore-to-camel-case: true

改成Mybatis-plus配置

mybatis-plus:type-aliases-package: com.xxxx.shortchain.entitymapper-locations: classpath*:/mappers/*.xml,classpath*:/mappers/**/*.xmlconfiguration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplmapUnderscoreToCamelCase: 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也能正常查询数据行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/144632.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

<<编码>> 第 14 章 反馈与触发器(8)--带预设和清零的触发器 示例电路

带预设和清零的边缘触发 D 型触发器 info::操作说明 将 “清零” 置为高电平可将 Q 置为 0; 将 “预设” 置为高电平可将 Q 置为 1; 注: 如果两者同为高电平, 则清零占优, 应避免同时出现 其余操作同上 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhtt…

0基础跟德姆(dom)一起学AI 数据处理和统计分析04-Panda入门

* Pandas数据结构介绍 * Series对象 * DataFrame对象 * Series常见操作 * 常用属性 * 常用方法 * 布尔索引 * 运算 * DataFrame常见操作 * 常用属性 * 常用方法 * 布尔索引 * 运算 * 更改操作 --- 1.Pandas数据结构介绍 * 图解 * 解释 * **DataFrame…

STM32最小系统核心板-SZPT领跑团队-C4

目录 一、团队介绍 队伍介绍 二、stm32f103c8t6构成 (1)概要 &#xff08;2&#xff09;构成 三、电路设计 &#xff08;1&#xff09;电源电路 &#xff08;2&#xff09;晶振电路 &#xff08;3&#xff09;SWD接口电路 &#xff08;4&#xff09;.复位电…

[Leetcode 543][Easy]-二叉树的直径-递归

目录 一、题目描述 二、整体思路 三、代码 一、题目描述 原题地址 二、整体思路 取一个结点的最大直径就是取一个结点的左子树最大深度右子树最大深度之和&#xff0c;因此可以定义一个递归函数&#xff0c;作用是取一个结点的最大直径。这个函数中还实现了求左子树最大深度…

Find My资讯|AirPods 4标准版充电盒无扬声器,Find My查找不会发出声音

苹果 AirPods 4 国行版标准版 999 元&#xff0c;主动降噪款 1399 元。标准版充电盒未内置扬声器&#xff0c;降噪版内置扬声器可用于查找功能。 苹果 AirPods 4 搭载 H2 芯片&#xff0c;引入计算音频技术&#xff0c;充电盒支持 USB-C 充电&#xff0c;体积比前代缩小 10% 以…

yolo车位数据集

停车场车位检测数据集是一个非常有价值的数据资源&#xff0c;它对于开发和训练能够自动识别停车位是否被占用的计算机视觉系统至关重要。以下是对这样一个数据集的详细介绍&#xff0c;以及如何使用这个数据集来训练YOLO&#xff08;You Only Look Once&#xff09;这样的目标…

nvm安装实现node多版本的切换

nvm安装实现node多版本的切换 方式一 下载安装包安装下载安装包解压安装设置 nvm 环境变量查看 nvm 是否安装完成安装 node 环境切换 node 版本列出已经安装的版本 方式二 一键脚本安装下载安装查看 nvm 是否安装完成安装 node 环境切换 node 版本列出已经安装的版本nvm相关命令…

基于yolov5的不同颜色安全帽检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv5的不同颜色安全帽检测系统是一种利用深度学习技术&#xff0c;特别是YOLOv5目标检测算法的创新应用。该系统旨在提高施工现场的安全管理水平&#xff0c;通过实时识别和检测工人佩戴的安全帽颜色&#xff0c;实现对安全规范的精准监督。 YOLOv5作为一…

GeoGebra 與數學探索 3 GeoGebra 在微積分的探索與動態演示

Goal: GeoGebra 除了可以輕鬆的讓我們以即時動態反饋圖形的方式模擬探索幾何的問題, 或是幫我們驗證答案, 也可以進行數論、微積分、矩陣等等各方面的探索, 在問題尺度不大又需要即時以圖像視覺呈現探索過程的情況下, GeoGebra 其實優於以寫程式的方式進行探索. “Talk is che…

记录|如何对批量型的pictureBox组件进行批量Image设置

目录 前言一、问题表述二、批量化处理更新时间 前言 参考文章&#xff1a; 一、问题表述 问题就是上图所示&#xff0c;这些的命名风格统一&#xff0c;只是最后的数字是不同的。所以存在可以批量化进行处理的可能性。 二、批量化处理 private void SetPictureBoxImages(){for…

VMware Fusion 虚拟机Mac版 安装CentOS8 系统教程

Mac分享吧 文章目录 CentOS 8 安装完成&#xff0c;软件打开效果一、Mac中使用虚拟机安装CentOS 8 系统1️⃣&#xff1a;下载镜像2️⃣&#xff1a;创建虚拟机3️⃣&#xff1a;设置虚拟机4️⃣&#xff1a;安装虚拟机5️⃣&#xff1a;设置成从磁盘启动 安装完成&#xff01…

数字病理图像处理:分割、合成与数据增强研究|顶刊精析·24-09-20

小罗碎碎念 今日精析&#xff1a;Medical Image Analysis 这篇文章介绍了一种结合了先进分割模型和生成对抗网络的病理切片图像分析流程&#xff0c;用于提高癌症诊断的准确性和效率。 作者角色姓名单位名称&#xff08;中文&#xff09;第一作者Muhammad Jehanzaib博阿齐奇大学…

在SpringCloud中实现服务熔断与降级,保障系统稳定性

在分布式系统中&#xff0c;微服务架构的应用越来越受欢迎。然而&#xff0c;由于各个微服务之间的依赖关系和网络通信的不稳定性&#xff0c;一个不稳定的服务可能会对整个系统产生连锁反应&#xff0c;导致系统崩溃。为了保障系统的稳定性&#xff0c;我们需要一种机制来处理…

支持异步线程自动传递上下文(例如当前请求)的工具类(支持自定义上下文传递逻辑,支持拦截所有异步操作)

文章目录 支持异步线程自动传递上下文&#xff08;例如当前请求&#xff09;的工具类&#xff08;支持自定义上下文传递逻辑&#xff0c;支持拦截所有异步操作&#xff09;使用示范ContextSupportedAsyncUtil .java自动拦截所有异步线程池操作ContextSupportedExecutorAspect.j…

【C++】——多态

文章目录 多态的概念多态的定义和实现虚函数虚函数的重写(覆盖)虚函数重写的例外 override 和 final关键字重载、重写和重定义(隐藏)纯虚函数和抽象类多态的原理动态绑定和静态绑定 多态的概念 多态就是多种形态&#xff0c;在执行某个行为时&#xff0c;当不同对象去完成时&a…

九章云极交付总监徐阳受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 北京九章云极科技有限公司基础设施中心交付总监徐阳先生受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾&#xff0c;演讲议题为“进阶卓越&#xff1a;自我培养备受需求的项目经理的实战策略”。大会将…

靠AI视频在短视频平台接单月入过万,她怎么做到的?AI视频真的来了

大家好&#xff0c;我是画画的小强 相信大家和我一样&#xff0c;从小也有一个导演梦&#xff0c;感谢AI时代&#xff0c;替我完成了这个梦想&#xff0c;如果你想知道如何实现的&#xff0c;今天这篇文章&#xff0c;你一定要看完&#xff01; 从去年11月份起&#xff0c;随…

python函数三:拆包和交换变量值、引用、匿名函数

文章目录 1. 拆包和交换变量值1.1 拆包1.2 交换变量值 2. 引用2.1 了解引用2.1 把引用当作参数传递 3. 匿名函数3.1 lambda语法3.2 lambda的应用3.3 使用使用函数形式来求解某天是该年的第几天&#xff1f; 1. 拆包和交换变量值 1.1 拆包 拆包&#xff1a;把组合形成的元组形…

Fipexide(FPX):植物组织培养中的新兴化学诱导剂AbMole

在植物科学领域&#xff0c;组织培养技术一直是探索植物发育机制和生物技术应用的强大工具。然而&#xff0c;尽管植物生长调节剂如生长素&#xff08;Auxin&#xff09;和细胞分裂素&#xff08;Cytokinin&#xff09;在促进植物愈伤组织形成和再分化中发挥了关键作用&#xf…

数据结构之树(下),你真的懂吗?

数据结构入门学习&#xff08;全是干货&#xff09;——树&#xff08;下&#xff09; 1 堆 (Heap) 1.1 什么是堆 堆 (Heap) 是一种特殊的完全二叉树&#xff0c;分为最大堆和最小堆。 最大堆&#xff1a;每个节点的值都大于或等于其子节点的值&#xff0c;根节点是整个堆的…