因为业务需要程序中重写了jdbc Driver类.com.jdbc.JlinsDriver并使用static 直接
1 class.forName(com.jdbc.JlinsDriver);
因其他业务需求在执行如下代码的时候
1 Class.forName("oracle.jdbc.OracleDriver");
2 connection = DriverManager.getConnection(firstlyUrl, info);
发现程序直接跳到了 com.jdbc.JlinsDriver 类里面去了,
翻看了 DriverManager 源代码发现 每 次class.forName的时候会把驱动按照顺序放到ArrayList
Java代码
1 for (Driver theDriver : theDrivers) {
2 Connection theConnection = theDriver.connect(url, info);
3 if (theConnection != null) {
4 return theConnection;
5 }
6 }
摘自 aijuans