gpt4 book ai didi

java - 不再需要 Class.forName(JDBC_DRIVER)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:08:25 40 4
gpt4 key购买 nike

我在这里读到,从 Java 6 开始,您不再需要使用以下方式注册 JDBC 驱动程序:

Class.forName(JDBC_DRIVER);

因为 DriverManager 使用位于系统属性 "jdbc.drivers" 中的路径检索正确的驱动程序。

但是当我执行以下操作时:

System.out.print(System.getProperty("jdbc.drivers"));

null 被打印出来。

你知道我的应用程序为什么能正常运行吗?? ;)

最佳答案

这与该系统属性无关。 Java6(和 JDBC4)引入了一个称为“service provider”的概念,其中 JVM 在启动期间可以检测到已知接口(interface)的实现。符合该要求的驱动程序将由 DriverManager 自动注册。这就是为什么不再需要 Class.forName() - 但前提是驱动程序支持它。

如果META-INF目录下的驱动jar文件中有services目录,则启动服务注册。该目录需要包含一个文本文件,其中包含在 JDBC 驱动程序的情况下实现的接口(interface)名称,即 java.sql.Driver 包含实现类。

关于java - 不再需要 Class.forName(JDBC_DRIVER)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28220724/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com