SSM整合的时候报错:org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC

一、 问题详情

1、报错代码
org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Access denied for user ‘sougu’@‘localhost’ (using password: YES)
2、详细错误

十月 31, 2020 8:59:23 上午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:

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

The error may exist in com/sou/dao/AccountDao.java (best guess)

The error may involve com.sou.dao.AccountDao.findAll

The error occurred while executing a query

Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Access denied for user ‘sougu’@‘localhost’ (using password: YES)] with root cause

java.sql.SQLException: Access denied for user ‘sougu’@‘localhost’ (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:910)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3923)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1273)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:718)
at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)

3、问题出错原因分析
(1)、问题翻译图解

SSM整合的时候报错:org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC

(2)、下面配置文件中写的就是数据库的名字与密码,为什么会获取到本机的名字呢?

   (1)db.properties(数据库相关配置信息)
SSM整合的时候报错:org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC

4、解决方案

SSM整合的时候报错:org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC

5、修改之后,问题成功解决,运行成功截图

SSM整合的时候报错:org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC