jdbc注册驱动三种方式

我们使用JDBC访问数据库时,第一步需要注册驱动以mysql数据库为例
平常我们都是Class.forName(“com.mysql.jdbc.Driver”);

有没有人觉得为什么我只做了一个Class.forName的操作,DriverManager就知道这个驱动在哪里
这里都没有引用给DriverManager
其实注册驱动有三种方式
第一种
Class.forName中的参数其实就是驱动类的包名.类名,这个类可以new的
Driver d=new com.mysql.jdbc.Driver();
DriverManager中提供了registDriver方法注册驱动
DriverManager.registerDriver(d);

第二种
就是我们平常用的方式,
那为什么他能注册驱动呢?
原因是Class.forName这个方法会导致一个类被加载
类加载了会自动的执行这个类里的静态代码块
静态代码块中其实写的就是第一种里面的代码
Class.forName(“com.mysql.jdbc.Driver”);

第三种
程序中不做注册驱动的事情,在执行java命令运行时,加-D参数让虚拟机加载驱动类,并注册驱动
java -Djdbc.drivers=com.mysql,jdbc.Driver

    原文作者:陶大海888
    原文地址: https://blog.csdn.net/msyqmsyq/article/details/52389780
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞