mybatis jar包_springboot2整合mybatis-plus3踩到的坑
前言
最近在进行项目重构,在架构师的建议下,就把项目中mybatis切换成mybatis-plus。因为mybatis-plus在mybatis的基础上只做增强不做改变,因此切换的成本很低,就只需改jar和配置内容,原先的代码无需改动。
因为mybatis-plus对mybatis的友好支持,我们花了一点时间就把mybatis改成mybatis-plus,那改造成不成功,先启动一下看不就知道了。然而一启动就翻车了,报了如下的错误
com.baomidou.mybatisplus.core.MybatisConfiguration.getLanguageDriver(Ljava/lang/Class;)Lorg/apache/ibatis/scripting/LanguageDriver;
完整的异常信息如下图
排查思路
从打印的异常信息,我们知道是不存在getLanguageDriver()这个方法。跟进源码会发现
getLanguageDriver这个方法可能是由
com.baomidou.mybatisplus.core.MybatisConfiguration
或者MybatisConfiguration的父类
org.apache.ibatis.session.Configuration
提供。由异常信息我们可以猜测如果项目要启动成功,就需要getLanguageDriver这个方法,而项目目前引用的MybatisConfiguration及其Configuration都无力提供,由此我们可以推断我们项目引入冒牌的MybatisConfiguration或者Configuration。更进一步的推断我们项目中应该存在多个
MybatisConfiguration或者Configuration。用人话来说,就是我们项目存在类冲突,更直白点就是jar冲突
验证过程
1、项目中存在多个MybatisConfiguration?
按住快捷键Ctrl+Shift+R
很遗憾事情不是我们想的那样,MybatisConfiguration只有一个
2、项目中存在多个Configuration?
按住快捷键Ctrl+Shift+R
果然存在2个Configuration。
3、验证包冲突
利用maven-helper插件查看jar冲突
很明显存在mybatis包冲突,而且我们项目引入的3.4.4版本的mybatis,而mybatis-plus需要引入的是3.5.3版本的mybatis
解决思路
借助maven-helper插件,我们可以看出项目是因为包传递依赖间接引入3.4.4版本的mybatis。因此我们把有引用3.4.4版本mybatis的项目升级成引入mybatis 3.5.3版本就行
总结
本文出现的坑挺常见的,利用搜索引擎应该都可以找到答案。写这篇文章除了介绍如何解决这个坑,主要还是想介绍一种排查问题的思路,即假设验证法。因为并不是每次都可以从搜索引擎上找到答案,此时我们就可以根据已知信息去一步步论证推断。最后如果对maven冲突解决感兴趣的朋友,可以查看下我之前写的文章
maven依赖冲突以及解决方法mp.weixin.qq.com
mybatis jar包_springboot2整合mybatis-plus3踩到的坑相关推荐
- mybatis jar包_Spring4+SpringMVC+MyBatis整合思路
本文主要简单讲解框架整合的思路. 1.Spring框架的搭建 这个很简单,只需要web容器中注册org.springframework.web.context.ContextLoaderListene ...
- mybatis jar包_Spring和mybatis的集成步骤
[1]创建一个工程 创建一个新的java Project 并在工程下创建一个lib文件夹(用于存放拷贝的.jar包文件) [2]导入需要的.jar包 导入项目需要的相关jar包 1)Spring的依赖 ...
- mybatis jar包_Java修行第039天---Mybatis框架
1.掌握框架的概念 (1)框架是什么 a)框架直白来说就是偷懒的程序员将代码进行封装,之后重复使用的过程 b)框架属于半成品 c)在使用框架时,需要告诉框架需要的信息.通常以配置文件的方式告知,一般来 ...
- mysql8.0用mybatis哪个版本_SpringBoot整合MyBatis与MySql8.0
一.前言 之前已经有一篇文章讨论过SpringBoot整合MyBatis,因而此篇不在重复累赘,本文主要是最新版的SpringBoot2.0与MyBatis.最新MySQL8.0整合过程中遇到的问题进 ...
- mybatis 一对多_Springboot整合Mybatis实现级联一对多CRUD操作
在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...
- mybatis generator使用_SpringBoot整合Mybatis实现自动生成代码 || 附阿里P8独家SpringBoot视频资料...
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. MyBatis 可以使用简单的 XM ...
- 关于Mybatis的列索引无效这个问题踩到的坑
昨天客户突然要求新增一个组织机构可维护的功能,做一个前端页面.在做到查询功能的时候,根据input输入框输入的汉字进行模糊查询.然后后台一直报错,说列索引无效. 我的解决办法:1.把sql复制到数据库 ...
- mybatis mysql uuid_spring boot整合mybatis利用Mysql实现主键UUID的方法
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- Mybatis的jar包下载地址
Mybatis jar包下载地址:https://github.com/mybatis/mybatis-3/releases 与SpringMVC进行整合jar包下载地址:https://github ...
最新文章
- 运维的shell小编(6)
- js判断是由含有a节点_如何在 JS 中判断数组是否包含指定的元素(多种方法)
- solidworks经典实例网盘下载_Solidworks自学视频教程(附源文件)讲解详细到位,成就设计高手...
- 【Leetcode | easy】两数之和
- github高级搜索技巧_【建议收藏】百度 quot;隐藏quot; 的高级搜索技巧
- Ecshop中的ajax+json
- Java开源权限管理中间件
- CF1396B Stoned Game(博弈论)
- 哪里有mysql认证_国内哪个城市可以考mysql认证
- 理想传输线终端短路开路和接纯电抗的沿线电压电流分布
- 微信小程序项目实例——投骰子
- JVAV - 对接支付宝- 下载对账单接口
- setBackgroundResource()与setImageBitmap()以及setBackground()的使用
- linux wifi开机自动连接 wifi连接
- T1114 白细胞计数(信息学一本通C++)
- Vue.js 写一个echarts的水滴图
- linux内存占用过高问题解决方法
- c语言写台球游戏,OpenGL版 3D台球 (原创,Basic实现) 申精!
- Docke初始(一)
- 【Rhapsody学习笔记】2:Count Down
热门文章
- mysql部署jar_mysql+jar踩坑记录
- 全国计算机等级考试题库二级C操作题100套(第64套)
- python去除图片上的文字_Python图像处理之识别图像中的文字(实例讲解)
- 计算机安全基础:加密技术知识笔记
- 计算机系统基础:总线结构知识笔记
- python 投资组合_重新设计投资组合的好处
- 如何写好技术文章(看张鑫旭老师的直播总结
- 一名运营,自学一年前端,成功入职杭州某独角兽企业,他的面试经验和学习方法等分享...
- 大型网站技术架构(一)大型网站架构演化
- IDEA、 JetBrains、webstorm、 pycharm 破解教程