最全解决方案:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.

CSDN博客主页:低山高梧桐-致力于做最优质的内容 如果涉及到版权问题,烦请联系作者删除! 如果文章有谬误,烦请您指出斧正,作者致力于做最好的博客。 整合:低山高梧桐 首发于CSDN 欢迎点赞收藏⭐留言打扰

温馨提示各位:

一定要学会读控制台里的报错信息,能够起到事半功倍的效果!

首先需要检查数据库配置文件中的这几样有没有错误:

1、用户名以及密码

2、驱动名称

3、数据库的ip、端口号和数据库名称

4、数据库中有没有要操作的表

这里的检查要仔细,看一下有没有错字和中文标点

如果不是这些问题,那可能是以下问题,还请逐个排查

一、yml等数据库配置文件重名

报错信息:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:

### Error updating database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Access denied for user 'Y7000'@'localhost' (using password: YES)

### The error may exist in file [D:\从零开始\spring\bj-SpringStudy-Mybatis01\bj-SpringMybatis-01\target\classes\com\jcjava\mapper\UserMapper.xml]

### The error may involve com.jcjava.mapper.UserMapper.insertUser

### The error occurred while executing an update

### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Access denied for user 'Y7000'@'localhost' (using password: YES)

yml中的配置名有冲突,但是概率较小,不推荐先尝试

统一将配置名添加jdbc.

既将原先的配置文件名称

改为下面的配置文件名称,统一添加上jdbc.

最后不要忘记在applicationContext.xml等文件中${}中的数据加上jdbc.

二、单元测试路径名称和实际项目中路径不一样

由于我是使用框架生成的代码,所以生成的路径和测试路径不一样

也就是图中这两个部分的文件树形结构要一致

否则会报错

三、SQL与映射相关

就这里就很多了,需要根据控制台的输出信息逐个排查

(一)可能是SQL语句本身写错了

(二)可能是mybatis的映射文件写错了

如题,结合控制台的输出信息,了解到是MyBatis的映射出现了问题

原博主是标签写错了

https://blog.csdn.net/2302_77182979/article/details/134674756

上面是原博主的链接,请移驾

(三)可能是MyBatis映射文件中映射结果写错了

原因分析

SQL 语句写错了。此处SQl没问题。mapper配置文件中的结果集写错了,假如返回的结果集是多个JavaBean,那么resultType=”javaBean”, 例如:查询Department的List列表,resultType应该写成Department的全类名而不是java.util.List

错误示范:

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

正确代码:

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

上面的resultType的结果前后不一致

请移驾原博主的博文

https://blog.csdn.net/qq_32106647/article/details/79081278

(四)其他类型

其他的所有类型都基本和MyBatis映射文件有关

所以你需要检查包括但不限于:

1.参数&结果

2.标签

3.SQL本身

所以说,还是需要会读报错信息的,直接领先同辈10年

鸣谢&参考

https://www.cnblogs.com/-LilyBlog-/p/7670393.html https://blog.csdn.net/weixin_50843918/article/details/130674960 https://blog.csdn.net/qq_32106647/article/details/79081278 https://blog.csdn.net/2302_77182979/article/details/134674756 https://blog.csdn.net/LJCC_c/article/details/111963923

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: