一、依赖导入错误

如果发现你的注解报错,或者存在无法自动注入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 failed​org.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报错大集合(保姆式排错)相关推荐

  1. SpringBoot 整合Redis报错:NoClassDefFoundError: redis/clients/util/SafeEncoder

    QUESTION:SpringBoot 整合Redis报错:NoClassDefFoundError: redis/clients/util/SafeEncoder? ANSWER: 这种情况是版本不 ...

  2. JavaWeb以Maven整合Mybatis报错java.lang.NoClassDefFoundError(Web项目未能完全加载Maven下的依赖)

    问题描述 为完成学校课程一个javaweb的demo,想着对数据库的访问能够更加简洁,所以用了Mybatis.因为之前有过Springboot整合Mybatis经验,所以本以为事情会简单.在Junit ...

  3. springboot整合activiti报错[processes/]不存在解决方案

    springboot整合activiti时,启动抛异常 nested exception is java.io.FileNotFoundException: class path resource [ ...

  4. springboot整合log4j2报错Unexpected filename extension of file[file__E__classes_log4j2.yml].Should be .xm

    问题描述 今天通过springboot整合log4j2,坐标如下: <!-- log4j2 日志 --><dependency><groupId>org.sprin ...

  5. SpringBoot整合Shiro报错记录

    SpringBoot整合Shiro过程中启动报错记录 --解决方法在最后 rg.springframework.context.ApplicationContextException: Unable ...

  6. 【学习之路】spring boot 整合mybatis报错 “serverTimezone=UTC“

    目录 一.踩坑原因 二.踩坑之前 三.报错原因 四.解决过程 方案一 方案二 方案三 方案四 方案五(重点) 结束 PS 一.踩坑原因 在学习spring boot 整合 mybatis-gegera ...

  7. Springboot整合邮箱报错502解决方法

    com.sun.mail.smtp.SMTPSendFailedException: 502 Invalid input from 111.0.184.121 to newxmesmtplogicsv ...

  8. spring boot 整合mybatis报错“serverTimezone=UTC“

    报错信息如下: 分析原因以后,发现错误原因如下: 刚开始在配置文件中的数据库连接参数是这样的: 然后根据错误信息,改成这样,添加了"serverTimezone=Asia/Shanghai& ...

  9. springboot整合rocketmq报错

    报错:org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call time ...

最新文章

  1. 中国程序员开发的远程桌面火了!Mac 可用,只有 9MB,支持自建中继器
  2. IDC发布制造业预测,AI风险决策因何上榜?
  3. Python学习笔记(2)-Python执行方式、变量
  4. matlab的默认字体_matlab默认字体设置
  5. 科研人的暑假:学长下地中暑,博士小姐姐留校养鱼......
  6. nginx -- 安装配置Nginx
  7. Linux下面MariaDB 管理命令基础使用
  8. Android 10 发布
  9. java 测试排序_java排序的几种方法 - 善待自己的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  10. 如何做出有价值的竞品分析?
  11. Wireshark初步入门
  12. 【编译打包】nagios-4.0.4-2.el6.src.rpm
  13. 垃圾回收机制,是不是这样理解?
  14. 懒人——支付宝app支付
  15. DIV 内容上下居中
  16. #POW和POS的优势和劣势
  17. 解读CUDA Compiler Driver NVCC - Ch.1 - Introduction
  18. paddleocr文本识别模型的训练
  19. 密歇根安娜堡大学的计算机科学教授,曾亮(美国国家工程院院士、密歇根大学遥感学教授)_百度百科...
  20. 【0】开始学习安卓了

热门文章

  1. 域名怎么跳转到另外一个网站?常见网页跳转方法和特点对比
  2. iOS - 加速计(重力感应)
  3. PHP 微信公众号发红包
  4. 视频教程- 设计讲师吴刚 2019-4-27 12:23:55 【吴刚大讲堂】Photoshop(PS)CC2-Photoshop
  5. AMD四核开六核,微星主板
  6. 上传身份证照片js_Asp.Net MVC 中JS通过ajaxfileupload上传图片获取身份证姓名、生日、家庭住址等详细信息...
  7. Springboot+mysql学生就业信息管理系统-计算机毕业设计源码95340
  8. JAVAWEB实现图片文件上传
  9. android电视直播集成,vlc_for_android(基于git-3.0.0)快速集成并播放电视节目直播
  10. FCU2201实现eth0网口做WAN口,eth1做LAN口