在连接到数据库时,Class.forName(“oracle.jdbc.driver.OracleDriver”)的实际用途是什么?
什么命令
Class.forName("oracle.jdbc.driver.OracleDriver")
在连接到 Oracle 数据库时究竟会这样做吗?有没有另一种方法可以做同样的事情?
什么命令
Class.forName("oracle.jdbc.driver.OracleDriver")
在连接到 Oracle 数据库时究竟会这样做吗?有没有另一种方法可以做同样的事情?
它获取对具有 FQCN(完全限定类名)的类对象的引用。oracle.jdbc.driver.OracleDriver
在连接到数据库方面,它不会“执行”任何操作,除了确保指定的类由当前类装入器装入。书写之间没有根本的区别
Class<?> driverClass = Class.forName("oracle.jdbc.driver.OracleDriver");
// and
Class<?> stringClass = Class.forName("java.lang.String");
Class.forName("com.example.some.jdbc.driver")
调用显示在使用 JDBC 的旧代码中,因为这是加载 JDBC 驱动程序的传统方式。
来自 Java 教程:
在以前版本的 JDBC 中,要获取连接,首先必须通过调用方法初始化 JDBC 驱动程序。此方法需要一个 类型为 的对象。每个 JDBC 驱动程序都包含一个或多个实现接口的类。
...
将自动加载在类路径中找到的任何 JDBC 4.0 驱动程序。(但是,您必须使用该方法手动加载 JDBC 4.0 之前的任何驱动程序。Class.forName
java.sql.Driver
java.sql.Driver
Class.forName
它注册驱动程序;形式上的东西:
public class SomeDriver implements Driver {
static {
try {
DriverManager.registerDriver(new SomeDriver());
} catch (SQLException e) {
// TODO Auto-generated catch block
}
}
//etc: implemented methods
}