一尘不染

Java连接到数据库时,Class.forName(“ oracle.jdbc.driver.OracleDriver”)的实际用途是什么?

java

命令会是什么

Class.forName("oracle.jdbc.driver.OracleDriver")

连接到Oracle数据库时该怎么做?是否有另一种做同一件事的方式?


阅读 1122

收藏
2020-03-05

共1个答案

一尘不染

它使用FQCN(完全限定的类名)获取对类对象的引用oracle.jdbc.driver.OracleDriver

除了确保指定的类由当前的classloader加载之外,它在连接数据库方面不做任何事情。写作之间没有根本区别

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驱动程序Class.forName。此方法需要一个类型的对象java.sql.Driver。每个JDBC驱动程序包含一个或多个实现该接口的类java.sql.Driver

在类路径中找到的所有JDBC 4.0驱动程序都会自动加载。(但是,你必须使用方法在JDBC 4.0之前手动加载任何驱动程序Class.forName。)

2020-03-05