是否需要 Class.forName() 机制?
Is Class.forName() mechanism needed?
以下代码:
Class.forName(dbDriver); // "org.postgres.Driver" or "com.mysql.jdbc.Driver"
是/必须打开 JDBC 连接。
我听说现代 JDBC 驱动程序不再需要它。但是我无法在我的项目中删除它,因为我遇到了 No suitable driver found
异常。我正在使用 postgresql-9.1-901.jdbc3.jar
、Java7 和 tomcat7。
什么时候可以省略Class.forName(...)
构造?
Class.forName() 不需要,因为 JDBC 4.0.
此处摘自 Java Tutorials on JDBC。
In previous versions of JDBC, to obtain a connection, you first had to
initialize your JDBC driver by calling the method Class.forName. This
methods required an object of type java.sql.Driver. Each JDBC driver
contains one or more classes that implements the interface
java.sql.Driver. The drivers for Java DB are
org.apache.derby.jdbc.EmbeddedDriver and
org.apache.derby.jdbc.ClientDriver, and the one for MySQL Connector/J
is com.mysql.jdbc.Driver. See the documentation of your DBMS driver to
obtain the name of the class that implements the interface
java.sql.Driver.
Any JDBC 4.0 drivers that are found in your class path are
automatically loaded. (However, you must manually load any drivers
prior to JDBC 4.0 with the method Class.forName.)
以下代码:
Class.forName(dbDriver); // "org.postgres.Driver" or "com.mysql.jdbc.Driver"
是/必须打开 JDBC 连接。
我听说现代 JDBC 驱动程序不再需要它。但是我无法在我的项目中删除它,因为我遇到了 No suitable driver found
异常。我正在使用 postgresql-9.1-901.jdbc3.jar
、Java7 和 tomcat7。
什么时候可以省略Class.forName(...)
构造?
Class.forName() 不需要,因为 JDBC 4.0.
此处摘自 Java Tutorials on JDBC。
In previous versions of JDBC, to obtain a connection, you first had to initialize your JDBC driver by calling the method Class.forName. This methods required an object of type java.sql.Driver. Each JDBC driver contains one or more classes that implements the interface java.sql.Driver. The drivers for Java DB are org.apache.derby.jdbc.EmbeddedDriver and org.apache.derby.jdbc.ClientDriver, and the one for MySQL Connector/J is com.mysql.jdbc.Driver. See the documentation of your DBMS driver to obtain the name of the class that implements the interface java.sql.Driver.
Any JDBC 4.0 drivers that are found in your class path are automatically loaded. (However, you must manually load any drivers prior to JDBC 4.0 with the method Class.forName.)