在使用下面代码注册JDBC驱动时报错。
DriverManager.registerDriver(new Driver());
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.
看一下我们使用的这个Driver类的源代码,它继承自com.mysql.cj.jdbc.Driver
,当新建这个类时,调用static方法然后报错。我们看看父类com.mysql.cj.jdbc.Driver
public class Driver extends com.mysql.cj.jdbc.Driver {
public Driver() throws SQLException {
}
static {
System.err.println("Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.");
}
}
com.mysql.cj.jdbc.Driver
的源代码如下所示,在实例化com.mysql.cj.jdbc.Driver
时就直接调用了static方法注册了驱动,如果注册不成功抛出错误信息
public class Driver extends NonRegisteringDriver implements java.sql.Driver {
public Driver() throws SQLException {
}
static {
try {
DriverManager.registerDriver(new Driver());
} catch (SQLException var1) {
throw new RuntimeException("Can't register driver!");
}
}
}
虽然使用原来的类也能够正常使用,但是那一小段报错信息对强迫症来说很难受,所以要解决这个给问题,将import com.mysql.jdbc.Driver
改为import com.mysql.cj.jdbc.Driver
即可。同时根据源代码,使用后者时注册驱动直接使用new Driver()
即可。再次运行,报错信息消失。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END