是Class.forName()机制吗? [英] Is Class.forName() mechanism needed?

查看:160
本文介绍了是Class.forName()机制吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码:

Class.forName(dbDriver); // "org.postgres.Driver" or "com.mysql.jdbc.Driver"

是必要的,以便打开JDBC连接。

is / was necessary to open JDBC connection.

我听说现代JDBC驱动程序不再需要它。但是我不能在我的项目中删除它,因为我得到没有合适的驱动程序发现异常。我使用 postgresql-9.1-901.jdbc3.jar ,Java7和tomcat7。

I have heard that it is no longer needed with modern JDBC drivers. However I can't remove it in my project, because I'm getting No suitable driver found exception. I am using postgresql-9.1-901.jdbc3.jar, Java7 and tomcat7.

何时可以省略 Class.forName(...)构造?

推荐答案

Class.forName ()从JDBC 4.0开始是不需要的。

Class.forName() is not needed since JDBC 4.0.

这里是 Java教程在JDBC上


,要获得连接,您首先必须
通过调用Class.forName方法初始化您的JDBC驱动程序。这个
方法需要一个java.sql.Driver类型的对象。每个JDBC驱动程序
包含一个或多个实现接口
java.sql.Driver的类。 Java DB的驱动程序是
org.apache.derby.jdbc.EmbeddedDriver和
org.apache.derby.jdbc.ClientDriver,MySQL Connector / J
的驱动程序是com.mysql .jdbc.Driver。请参阅DBMS驱动程序的文档
获取实现接口
java.sql.Driver的类的名称。

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.

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


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()机制吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆