原本的:DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Driver 这个类里面有静态代码块,一上来就执行了,所以等同于我们注册了两次驱动。 其实没这个必要的。
//静态代码块 ---> 类加载了,就执行。 java.sql.DriverManager.registerDriver(new Driver());
所以其实加载Driver这个类就可以了,说到底就是"com.mysql.jdbc.Driver"里面有DriverManager.registerDriver(new com.mysql.jdbc.Driver());这行代码了。
Class.forName("com.mysql.jdbc.Driver");
还能继续优化一下代码,把驱动注册和和Connection连接抽取放入工具类里面。
static String driverClass = null;
static String url = null;
static String name = null;
static String password= null;
public static Connection getConn(){
Connection conn = null;
try {
Class.forName(driverClass);
conn = DriverManager.getConnection(url, name, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}