在看jdbc时,书上说java6支持驱动程序自动加载,也就是不用Class.forName显示加载

2024-11-16 15:19:15
推荐回答(6个)
回答(1):

用 WinRAR 或 WinZip 打开 那个 JDBC 4.0+ 的驱动程序,(早期版本的驱动程序是不支持的),你可以看到 META-INF 文件夹下面多出了一个文件,它里面写着驱动程序的名字。JDBC  DriverManager 会自动搜索  META-INF/xxxxx 去尝试读取它找到的任何 jar 中的这个目录,如果有东西就会自动 Class.forName 加载它,这在 Java 中叫 Service Provider discovery 机制,自动发现,JSP 中的 tld 文件也是使用类似的机制,以前需要我们手工把它们配置在 web.xml  里面,后来不需要了,你可以找一个 jstl.jar 打开来看看,设计原理是一样的。以后你可以模仿一样,在 META-INF 中添加一个东西来当然插件机制。扫描 META-INF 也可能由 JVM 自动来完成并添加它到 System.getProperties() 里面。


如图:

回答(2):

的确是这样的,原来获取连接是以下3步

1. 加载JDBC驱动;
2. 定义连接的URL;
3. 建立连接;

现在可以省去驱动的加载,
就是不写Class.forName()方法,
直接使用Connection获取数据库连接

回答(3):

估计是自动判定连接数据库的
根据URL能判定出来
其实在实际开发中JDBC的开发并不是那么重要的,因为有太多完美的连接池框架(Hibernate mybatis等),除非你自己写连接池0.0
你可以自己找一下有没有这个方法,但是建议你不要太深究,因为可以说是 没用!
如果实在想看的话 就到java.sql.*这个库下找找看吧

回答(4):

这个和java版本有关?

回答(5):

下个金山助手也吧

回答(6):

您好,这样的情况建议您下载最新版本的驱动精灵,或是直接在线升级一下驱动精灵。希望可以帮到您。