Springboot整合Mybatis报错大集合(保姆式排错)
一、依赖导入错误
如果发现你的注解报错,或者存在无法自动注入bean的错误,那么你就要看看是不是你的依赖导入错误:
- 错误重现:导入错误依赖
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2022-03-31 10:58:52.140 ERROR 1040 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.example.demo.DemoApplication#MapperScannerRegistrar#0': Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/ibatis/session/SqlSessionFactory
- 查看自己导入的依赖是否有问题
如果发现你导入的依赖是下面这个,恭喜你中奖了。(此时只要把下面的错误的改成上面这个正确依赖就行)
依赖版本可以适当调整
PS:每一次修改pom文件都要点右上角依赖刷新按钮,否则修改不会生效
二、项目启动错误
如果你的依赖没有问题,启动项目的时候发现报错,那么可能是你的mapper包没有被扫描
Description:Field userMapper in com.example.demo.service.impl.UserServiceimpl required a bean of type 'com.example.demo.mapper.UserMapper' that could not be found.The injection point has the following annotations:- @org.springframework.beans.factory.annotation.Autowired(required=true)Action:Consider defining a bean of type 'com.example.demo.mapper.UserMapper' in your configuration.
报错样式:(错误类型:扫描不到mapper类)
解决方案有两种:(选择其一即可,两者都加上也不会报错)
1、在你的UserMapper类上加@mapper注解;2、在你的启动类DemoApplication上加@MapperScan("com.example.demo")注解;
三、项目运行错误
如果查看你的依赖也没有问题,注解也没有问题,启动项目的时候也没有报错,然后你信心百倍的去浏览器输入地址,发起请求;然后你会surprise的发现报错500
报错代码:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.demo.mapper.UserMapper.save
这个时候你肯定在想,我的mapper类明明有啊,我又不瞎,为什么电脑找不到呢,那一定是电脑瞎了;
没错,你的mapper类是找到了,但是你编写的增删改查数据库执行代码找不到,也就是说到不到你的mapper.xml文件,这个时候你就要看你的application.yml(或application.properties)文件是不是缺少了以下配置:
mybatis:mapper-locations: classpath:mapping/*.xmltype-aliases-package: com.example.demo.entity
假如你的xml文件不想放在resources文件下面,偏偏要放在src.main.java文件下面,那么此时此刻系统一定又懵逼了,找不到你的xml文件,那么在pom.xml中添加以下配置,告诉idea,在编译的时候将src/main/java下的xml一起打包进class文件夹中,这样也就不会报Invalid bound statement (not found)错误了:
<build><!-- 项目打包时会将java目录中的*.xml文件也进行打包 --><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources>
</build>
然后在yml文件中修改对应位置,最好清理一下缓存,刷新一下maven,重新启动程序。
当你把以上所有错误都排除了以后,此时你一定发现头发又少了几根;那么你的项目也可以正确的运行起来了。(如果此时你的项目还没有运行起来,那就要看看你的sql连接是否正确,你的mapper.xml文件编写是否正确)
(当你的头发变少了,你也就变强了!)
项目地址:
Demo Project: 这个仓库用于存放日常练手的项目或者某一项技术的框架https://gitee.com/yan_hongwei/demo02.git 测试环境:idea2020,jdk11,maven3.6.3
Springboot整合Mybatis报错大集合(保姆式排错)相关推荐
- SpringBoot 整合Redis报错:NoClassDefFoundError: redis/clients/util/SafeEncoder
QUESTION:SpringBoot 整合Redis报错:NoClassDefFoundError: redis/clients/util/SafeEncoder? ANSWER: 这种情况是版本不 ...
- JavaWeb以Maven整合Mybatis报错java.lang.NoClassDefFoundError(Web项目未能完全加载Maven下的依赖)
问题描述 为完成学校课程一个javaweb的demo,想着对数据库的访问能够更加简洁,所以用了Mybatis.因为之前有过Springboot整合Mybatis经验,所以本以为事情会简单.在Junit ...
- springboot整合activiti报错[processes/]不存在解决方案
springboot整合activiti时,启动抛异常 nested exception is java.io.FileNotFoundException: class path resource [ ...
- springboot整合log4j2报错Unexpected filename extension of file[file__E__classes_log4j2.yml].Should be .xm
问题描述 今天通过springboot整合log4j2,坐标如下: <!-- log4j2 日志 --><dependency><groupId>org.sprin ...
- SpringBoot整合Shiro报错记录
SpringBoot整合Shiro过程中启动报错记录 --解决方法在最后 rg.springframework.context.ApplicationContextException: Unable ...
- 【学习之路】spring boot 整合mybatis报错 “serverTimezone=UTC“
目录 一.踩坑原因 二.踩坑之前 三.报错原因 四.解决过程 方案一 方案二 方案三 方案四 方案五(重点) 结束 PS 一.踩坑原因 在学习spring boot 整合 mybatis-gegera ...
- Springboot整合邮箱报错502解决方法
com.sun.mail.smtp.SMTPSendFailedException: 502 Invalid input from 111.0.184.121 to newxmesmtplogicsv ...
- spring boot 整合mybatis报错“serverTimezone=UTC“
报错信息如下: 分析原因以后,发现错误原因如下: 刚开始在配置文件中的数据库连接参数是这样的: 然后根据错误信息,改成这样,添加了"serverTimezone=Asia/Shanghai& ...
- springboot整合rocketmq报错
报错:org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call time ...
最新文章
- 中国程序员开发的远程桌面火了!Mac 可用,只有 9MB,支持自建中继器
- IDC发布制造业预测,AI风险决策因何上榜?
- Python学习笔记(2)-Python执行方式、变量
- matlab的默认字体_matlab默认字体设置
- 科研人的暑假:学长下地中暑,博士小姐姐留校养鱼......
- nginx -- 安装配置Nginx
- Linux下面MariaDB 管理命令基础使用
- Android 10 发布
- java 测试排序_java排序的几种方法 - 善待自己的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- 如何做出有价值的竞品分析?
- Wireshark初步入门
- 【编译打包】nagios-4.0.4-2.el6.src.rpm
- 垃圾回收机制,是不是这样理解?
- 懒人——支付宝app支付
- DIV 内容上下居中
- #POW和POS的优势和劣势
- 解读CUDA Compiler Driver NVCC - Ch.1 - Introduction
- paddleocr文本识别模型的训练
- 密歇根安娜堡大学的计算机科学教授,曾亮(美国国家工程院院士、密歇根大学遥感学教授)_百度百科...
- 【0】开始学习安卓了
热门文章
- 域名怎么跳转到另外一个网站?常见网页跳转方法和特点对比
- iOS - 加速计(重力感应)
- PHP 微信公众号发红包
- 视频教程- 设计讲师吴刚 2019-4-27 12:23:55 【吴刚大讲堂】Photoshop(PS)CC2-Photoshop
- AMD四核开六核,微星主板
- 上传身份证照片js_Asp.Net MVC 中JS通过ajaxfileupload上传图片获取身份证姓名、生日、家庭住址等详细信息...
- Springboot+mysql学生就业信息管理系统-计算机毕业设计源码95340
- JAVAWEB实现图片文件上传
- android电视直播集成,vlc_for_android(基于git-3.0.0)快速集成并播放电视节目直播
- FCU2201实现eth0网口做WAN口,eth1做LAN口