jdbc注册驱动三种方式

来源:互联网 发布:淘宝申诉哪里 编辑:程序博客网 时间:2024/05/10 17:21
我们使用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
3 0