DriverManager.getConnection 加载驱动的顺序

DriverManager.getConnection 加载驱动的顺序因为业务需要程序中重写了jdbcDriver类.com.jdbc.JlinsDriver并使用static直接[code="java"]class.forName(com.jdbc.JlinsDriver);[/code]因其他业务需求在执行如下代码的时候[code="java"]Class.forName("oracle.jdbc.OracleDriver");connectio…

DriverManager.getConnection因为业务需要程序中重写了jdbc Driver类.com.jdbc.JlinsDriver并使用static 直接

class.forName(com.jdbc.JlinsDriver);

因其他业务需求在执行如下代码的时候

Class.forName("oracle.jdbc.OracleDriver");
connection = DriverManager.getConnection(firstlyUrl, info);

[color=blue]发现程序直接跳到了 com.jdbc.JlinsDriver 类里面去了[/color],

翻看了 DriverManager 源代码发现 [color=blue]每次class.forName的时候会把驱动按照顺序放到ArrayList<Dirver> theDrivers 当中,每次 getConnection的时候从第一个开始加载,如果第一个返回不正确则加载第二个,在每个dirver实现类里面都会有acceptsURL(String url)方法来验证当前的url是否符合当前的驱动[/color],如下代码(IBM JDK),java标准jdk实现方式差不多

for (Driver theDriver : theDrivers) {
  
  
Connection theConnection = theDriver.connect(url, info);
if (theConnection != null) {
return theConnection;
}
}

今天的文章DriverManager.getConnection 加载驱动的顺序分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/28428.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注