两种Jdbc加载驱动的区别

  • 首先理解静态代码块的概念:

              静态代码块是写在类里面的代码块,用static修饰,在大括号里面写的代码

public class Test(){
    static{
        System.out.println("这是个静态代码块");
    }
}

              在类加载的时候首先执行静态代码块里面的语句. 

  • DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
    
  • Class.forName("com.mysql.cj.jdbc.Driver");

             上面的是两个加载驱动的方式,如果你往Driver按着ctrl键和鼠标左键,进去看源码.

        类里面有个静态代码块,加载类的时候自动 DriverManager.registerDriver(new Driver())语句.

        两者是相同的结果.细微区别是,你采用第一种方法,你在new Driver对象时,那个类已经加载了,类加载的同时执行静态代码块,已经完成加载驱动,你把这个new的driver对象又传给registerDriver相当于加载了两次驱动.第二种方法只加载了一次驱动.

猜你喜欢

转载自blog.csdn.net/jdq8576/article/details/86635672
今日推荐