DriverManager.getConnection()是咋确定用哪个DriverClass?

【DriverManager.getConnection()是咋确定用哪个DriverClass?】 oracle和mysql两种驱动的url有不同的前缀,"jdbc:mysql:"和"jdbc:oracle:thin",在获取连接的时候,会对这个前缀进行检查,参见mysql驱动的 parseURL方法。
DriverManager.getConnection方法中,遍历已经注册的驱动,挨个调用connec方法获取连接,而connect方法进行一系列的检查,其中包括调用parseURL来检查是否符合当前驱动的前缀。如果检查发现不符合响应的规则,则继续轮换下一个驱动继续尝试连接。
isDriverAllowed方法用于确保,注册的驱动类对调用类是可见的,因为注册驱动的类的类加载器和调用驱动的类的类加载器可能并非同一个,有可能互不可见。


    推荐阅读