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