首页 > 数据库 > mysql教程 > 自 Java 6 以来,Class.forName(JDBC_DRIVER) 真的已经过时了吗?

自 Java 6 以来,Class.forName(JDBC_DRIVER) 真的已经过时了吗?

Barbara Streisand
发布: 2025-01-05 01:49:44
原创
224 人浏览过

Is Class.forName(JDBC_DRIVER) Really Obsolete Since Java 6?

Java 6 中不再需要 Class.forName(JDBC_DRIVER)

本文讨论了据称消除注册 JDBC 驱动程序的需要从 Java 6 开始使用 Class.forName(JDBC_DRIVER)。这个假设源于这样的信念:DriverManager 依赖于系统属性“jdbc.drivers”来查找适当的驱动程序。

但是,打印 System.getProperty("jdbc.drivers") 的值返回 null,让用户困惑为什么他们的应用程序继续正常运行.

答案

尽管没有“jdbc.drivers”系统属性与此属性无关。 Java 6 引入了服务提供者的概念,这使得 JVM 能够在启动时自动检测已知接口的实现。

遵循此机制的 JDBC 驱动程序会由 DriverManager 自动注册,从而无需 Class.forName() 。但是,这只适用于驱动程序支持服务提供者注册的情况。

要启动服务注册,驱动程序必须在其 JAR 文件的 META-INF 目录中包含一个名为“services”的目录。此目录应包含一个名为“java.sql.Driver”的文本文件,该文件指定 JDBC 驱动程序的实现类。

以上是自 Java 6 以来,Class.forName(JDBC_DRIVER) 真的已经过时了吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板