- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在这里读到,从 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/
我在这里读到,从 Java 6 开始,您不再需要使用以下方式注册 JDBC 驱动程序: Class.forName(JDBC_DRIVER); 因为 DriverManager 使用位于系统属性 "j
我有 1 个基本程序和 1 个应用程序,我的基本程序可以正常工作(DB_URL、USER、PASS、JDBC_DRIVER 都正确且有效)并且我能够从我的 MySQL 数据库中获取信息。代码包括: t
我是一名优秀的程序员,十分优秀!