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

加载JDBC驱动程序

邢飞鸿
2023-03-14
问题内容

有人告诉我,加载JDBC驱动程序的首选方法是:

Class.forName(driverName);

我知道,这对于从XML配置文件或用户输入中读取多个驱动程序之间的动态决策更好。我很好奇的是,调用此语句如何将指定的驱动程序加载到我们什至没有将生成的“
Class”对象存储在任何地方的环境中。JavaDocs条目说:

public static Class forName(String className)
                 throws ClassNotFoundExceptionReturns

返回与具有给定字符串名称的类或接口关联的Class对象

在那种情况下,Java开发人员仅凭此语句如何设法促进驱动程序对象的存在?


问题答案:

Class#forName()运行静态初始化(你知道的,static适用于类,而不是实例)。JDBC驱动程序实现应在静态初始化程序中注册自己。

public class SomeDriver implements Driver {

    static {
        DriverManager.registerDriver(new SomeDriver());
    }

}

请注意,存在错误的JDBC驱动程序,例如org.gjt.mm.mysql.Driver错误地将自身注册到构造函数中。因此,您以后需要newInstance()致电此类驱动程序以使他们进行注册。



 类似资料:
  • 问题内容: 我在春季配置了一个netezza db。我在类路径中添加了依赖的nzjdbc.jar 春季配置: 问题答案: 将放入您的本地Maven存储库 (在该目录执行这个位于 然后像正常依赖项一样使用它: @请参阅安装第三方JAR的指南

  • 问题内容: 在进行简单的JDBC连接时,所有资源都提供相同的代码, 但是我们实际上与“ Class.forName(driver)”无关。我们没有将其存储在任何地方。它的用途是什么,因为我们与Class.forName(driver)的返回无关。 问题答案: 尝试加载命名的类。在早期的JDBC版本中,这是必需的,因为该类要求以这种方式加载该类。多年以来都不需要这样做。 忽略通话,不会发生任何不良情

  • 我正在上使用。我试图弄明白如何使用数据导入从加载数据。但我最终无法加载JDBC驱动程序类。以下是我所做的: 把放到 1.配置: 2.配置: 在

  • 即使驱动程序类名已定义,我也会收到此错误 Java语言lang.IllegalStateException:无法加载驱动程序类:com。mysql。jdbc。组织的驱动程序。springframework。util。明确肯定state(Assert.java:392)~[spring-core-4.2.1.RELEASE.jar:4.2.1.RELEASE]位于org。springframewor

  • 我在为Em申明德比加载JDBC驱动程序时遇到了问题。以下是我编译和运行我的程序的案例 > 案例1: 编译:E:\java\WorkReminder Run: E:\java\WorkReminder 错误: 无法加载JDBC驱动程序org . Apache . derby . JDBC . embedded driver。请检查您的类路径。Java . lang . classnotfoundex

  • 本文向大家介绍Java加载JDBC驱动程序实例详解,包括了Java加载JDBC驱动程序实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例说明了Java加载JDBC驱动程序的方法,运行本文实例代码后,如果连接成功就会显示如下一条语句:sun.jdbc.odbc.JdbcOdbcDriver@6ec12,如果连接不成功,则显示加载数据库驱动程序出现异常。 Java加载JDBC的实现方法: 通过