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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

什么命令

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驱动程序Class.forName。这个方法需要一个类型的对象java.sql.Driver。每个JDBC驱动程序包含一个或多个实现该接口的类java.sql.Driver。 ... 在类路径中找到的任何JDBC 4.0驱动程序都会自动加载。(但是,您必须使用该方法在JDBC 4.0之前手动加载任何驱动程序Class.forName。)

用户回答回答于

它登记驱动程序;某种形式:

public class SomeDriver implements Driver {
  static {
    try {
      DriverManager.registerDriver(new SomeDriver());
    } catch (SQLException e) {
      // TODO Auto-generated catch block
    }
  }

  //etc: implemented methods
}

扫码关注云+社区