今天在处理一个项目时发现无法连接数据库,项目总是会报这样一个错误
就可以解决了。
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'jdbc:mysql://localhost:3306/authority?useUnicode=true&characterEncoding=UTF-8'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:82)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
... 87 more
Caused by: java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(Unknown Source)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1143)
... 90 more
后来发现,这是由于没有显示的指定数据库驱动而造成的,只需要在application.xml文件中加上这样一句话:
<property name="driverClassName" value="com.mysql.jdbc.Driver">
就可以解决了。
PS:这个问题经常出现在项目移动前后,由于将项目在磁盘上的位置改变了,所以默认的驱动类型失效,因此之前可以运行的项目往往会突然出现这样的问题。
在使用系统自带的SSH框架进行搭建时,并不会自动在application中生成这句话~