当前位置: 首页 > 面试题库 >

是否需要Class.forName()机制?

丌官飞章
2023-03-14
问题内容

以下代码:

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

是/是打开JDBC连接所必需的。

我听说现代JDBC驱动程序不再需要它。但是我无法在项目中将其删除,因为我遇到了No suitable driver found异常。我正在使用postgresql-9.1-901.jdbc3.jarJava7和tomcat7。

什么时候可以省略Class.forName(...)构建


问题答案:

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

这是JDBC的Java教程的摘录。

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

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



 类似资料:
  • 随着新的工具栏小部件的引入和AppCompat(android.support.v7.widget.Toolbar)版本的推出,是否还需要调用setSupportActionbar(工具栏)?或者调用setSupportActionbar有什么好处吗;现在我们可以设置标题、子标题、导航图标、导航图标单击侦听器(getSupportActionBar()。直接在工具栏上设置DisplayHomeAs

  • 问题内容: 我需要使用字符串参数并在Python中创建以该字符串命名的类的对象。在Java中,我会使用。在Python中是否有等同功能? 感谢你的答复。回答那些想知道我在做什么的人:我想使用命令行参数作为类名,并实例化它。我实际上是在Jython中编程并实例化Java类,因此是问题的Java实质。 效果很好。非常感谢。 问题答案: python中的反射比Java中的反射更容易,更灵活。 没有直接函

  • 问题内容: 我正在使用Hibernate Search,文档和书籍说我在id字段上需要@DocumentId,以便Hibernate Search可以知道如何将索引映射到对象。 没有代码中的@DocumentId,我的代码似乎运行良好。Hibernate Search是否变得足够聪明,以至于@Id字段是一个很好的默认值?是否会引起一些不明显的问题? 谢谢你的时间! 问题答案: 如果您使用的是老式的

  • 问题内容: 我需要从该站点下载哪个tar? 我已经尝试过fortrans,但是一直出现此错误(明显地设置了环境变量之后)。 问题答案: 该SciPy的网页用来提供构建和安装说明,但说明现在依靠操作系统二进制分发。要在没有预编译所需库软件包的操作系统上构建SciPy(和NumPy),必须先构建然后静态链接到Fortran库BLAS和LAPACK: 仅执行五个g77 / gfortran / ifor

  • 问题内容: 这可能是愚蠢的问题。Hyperledger Fabric是否需要Docker才能运行。 我只是想知道,仅当我们需要在同一台物理机中将Fabric peer,orderer或benchDB作为虚拟机运行时才需要Docker。我认为,如果我们在单独的同一台服务器上本地安装这些软件(对等,订单,couchDB等),则可能不需要Docker。 谢谢。 问题答案: 只是要注意这一点,尽管您不需要

  • 我使用testAd ID(ca-app-pub-3940256099942544/1033173712)从admob不是我的admob ID,我需要使用addTestDevice()太,而在移动设备测试?它甚至显示了测试广告屏幕,而不是实时广告。 因为我这样做了,我整天都在使用我的应用程序进行测试,晚上我收到了账户暂停邮件。