怎样编写加载与注册驱动的代码

2026-04-01 12:38:18

1、直接创建Driver接口的实现类对象

怎样编写加载与注册驱动的代码

2、DriverManager 类的 registerDriver()

在实际开发中,程序中不直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现。

DriverManager 类是驱动程序管理器类,负责管理驱动程序。

通常不用显式调用 DriverManager 类的 registerDriver() 方法来注册驱动程序类的实例。

怎样编写加载与注册驱动的代码

3、Class.forName()或ClassLoader对象.loadClass()

因为 Driver 接口的驱动程序类都包含了静态代码块,在这个静态代码块中,会调用 DriverManager.registerDriver() 方法来注册自身的一个实例,所以可以换一种方式来加载驱动。(即只要想办法让驱动类的这段静态代码块执行即可注册驱动类,而要让这段静态代码块执行,只要让该类被类加载器加载即可)

怎样编写加载与注册驱动的代码

4、调用 Class 类的静态方法 forName(),向其传递要加载的 JDBC 驱动的类名

怎样编写加载与注册驱动的代码

5、服务提供者框架(例如:JDBC的驱动程序)自动注册(有版本要求)

符合JDBC 4.0规范的驱动程序包含了一个文件META-INF/services/java.sql.Driver,在这个文件中提供了JDBC驱动实现的类名。例如:mysql-connector-java-5.1.40-bin.jar文件中就可以找到java.sql.Driver文件,用文本编辑器打开文件就可以看到:com.mysql.jdbc.Driver类。

怎样编写加载与注册驱动的代码

6、JVM的服务提供者框架在启动应用时就会注册服务,例如:MySQL的JDBC驱动就会被注册,而原代码中的Class.forName("com.mysql.jdbc.Driver")仍然可以存在,但是不会起作用。

但是注意mysql-connector-java-5.0.8-bin.jar版本的jar中没有,

怎样编写加载与注册驱动的代码

猜你喜欢