DriverManager 驱动程序注册:Class.forName() 在 Java 6 及更高版本中的用法
问题:
从 Java 6 开始,不再需要 Class.forName(JDBC_DRIVER) JDBC驱动程序注册?尽管文档建议 jdbc.drivers 系统属性应提供驱动程序路径,但打印此属性会返回 null。为什么应用程序仍然可以正常运行?
答案:
Java 6(和 JDBC4)中 Class.forName() 的消除与 jdbc.drivers 无关财产。 Java 引入了“服务提供者”概念,兼容的驱动程序可以在启动期间向 JVM 自行注册。
服务提供者注册:
遵守此标准位置的驱动程序META-INF 目录中 JAR 文件内的 services 目录。该目录包含一个名为 java.sql.Driver 的文本文件,该文件指定实现类。
驱动程序检测:
JVM 自动检测并注册实现该接口的驱动程序。这消除了使用 Class.forName() 为兼容驱动程序进行显式注册的需要。
应用程序功能:
在提供的示例中,应用程序仍然可以正常运行,尽管System.getProperty("jdbc.drivers") 的 null 返回值如果:
以上是Java 6 及更高版本中的 JDBC 驱动程序注册是否需要 Class.forName()?的详细内容。更多信息请关注PHP中文网其他相关文章!