JDBC连接步骤:
1.加载驱动
2.获得连接
3.创建Statement对象
4.执行SQL
5.关闭连接
以上5步没问题吧?可不可以简化?
在我印象里自己写JDBC时,一直都是以上五步的,可是今天彻底的给我改变了
首先代码如下:
// 加载驱动
public DBUtils() {
try {
Class.forName(driverName);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
// 建立连接
public synchronized Connection getConnection() throws SQLException {
if (conn == null || conn.isClosed()) {
conn = java.sql.DriverManager.getConnection(dbURL, userName, userPwd);
}
return conn;
}
……
但是我在调用时,报错 ClassNotFount:com.mysql.jdc.Driver
这个错误报的没问题,因为驱动类路径写错了,但是神奇的是,竟然SQL还执行了并返回了查询结果。
因此我试着不写第一步代码如下:
// 加载驱动
public DBUtils() {
// try {
// Class.forName(driverName);
// } catch (Exception e) {
// System.out.println(e.getMessage());
// }
}
// 建立连接
public synchronized Connection getConnection() throws SQLException {
if (conn == null || conn.isClosed()) {
conn = java.sql.DriverManager.getConnection(dbURL, userName, userPwd);
}
return conn;
}
……
然后执行查询语句,也执行成功并返回了查询结果。
因此我产生了一个问题:Class.forName(driverName)这句话的作用是什么,有什么意义?实验证明我们可以不需要加载驱动的。