老铁们想知道 Class.forName(“com.mysql.cj.jdbc.Driver“) 这个加载类是干啥用的吗
老铁们,JDBC咱们都用过吧,大家好不好奇
A :Class.forName(“com.mysql.cj.jdbc.Driver”);
B :Connection conn=DriverManager.getConnection(url,user,password);
这俩有什么关系
看起来这没啥关系呀,那他俩为啥要写在一起呢?
今天 我就来给你解开它们的神秘面纱
我都知道 Class.forName()是要加载一个类,不知道大家还记得不记得类被加载时是会执行静态代码块的,好像执行之一次
所以A和B看似没关系,其实它们俩有“不可告人的秘密”,我敢打保证com.mysql.cj.jdbc.Driver这个类绝对有个static代码块,其中肯定有与B相关的代码结构
源码让我给找到了Driver这个类中有DriverManager,所以A和B这下子就有联系了吧