2016.11.10 Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver
运行项目rds_web时,出现错误提示:
Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver。
更详细的错误提示:
org.apache.ibatis.exceptions.PersistenceException:
### Error updating database.
Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException:
at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource)..
根据错误提示,可以知道两点,连接数据库失败,失败的原因在于com.mchange.v2.c3p0出了问题。
1.去配置文件找com.mchange.v2.c3p0.DriverManagerDataSource
在applicationContext-myBatis.xml的配置中,可以看到:
dataSource的配置取决于两点,jar包是否存在,以及配置的数据是否能正确获取。
2.去查看jdbc的jar包
(1)pom.xml文件
(2)项目里的dependences
intellij--project structure--modules---rds_web
3.查看database.properties
既然pom.xml配置对了,相应的jar也成功下载了,那么只能是数据获取有问题了。因此去查看项目的配置文件database.properties。
发现错误:
配置文件是复制另一个项目的,结果忘记改数据库的名字。navicat中我的项目对应的数据库是rds,但是我却忘了改。
改完之后,运行项目,发现错误仍然存在。依旧无法正确连接。
4.查看applicationContext-mvc.xml
修改了database.properties文件,依旧没有连接成功。猜想可能是文件并没有被成功加载。于是查看applicationContext-mvc.xml。
发现错误:
和上面一样的原因,配置文件来自复制,忘记改项目名。
综上所述,将database.properties的url更正,然后将applicationContext-mvc.xml的属性文件读取地址更正,这个错误就解决了。
通过查资料可以知道,这种错误(could not get JDBC connection,no suitable driver)的意思就是连不上数据库。
连不上的原因有:
1.没有依赖包(因此我去查看了pom.xml和dependences)
2.数据库配置文件的url错误(因此我去查看了database.properties的内容,url由IP,端口和数据库名组成,记得都要检查)
3.项目配置文件里加载数据库配置文件错误(因此我去查看了applicationContext-mvc.xml)
连不上的原因有:
1.没有依赖包(因此我去查看了pom.xml和dependences)
2.数据库配置文件的url错误(因此我去查看了database.properties的内容,url由IP,端口和数据库名组成,记得都要检查)
3.项目配置文件里加载数据库配置文件错误(因此我去查看了applicationContext-mvc.xml)
fighting for this