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

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

Barbara Streisand
Barbara Streisand原创
2025-01-05 01:49:44263浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn