Mybatis技术内幕读书笔记(二)JDBC反射com. mysql.jdbc.Driver的原理

前言:

熟悉JDBC 的读者知道,创建数据库连接之前, 需要先向DriverManager 注册JDBC 驱动类。我们以MySQL 提供的JDBC 驱动为例进行简单分析,com. mysql.jdbc.Driver中有如下静态代码块:

Driver Manager 中定义了registeredDrivers 字段用于记录注册的JDBC 驱动,定义如下:

回到MyBatis 中UnpooledDataSourc巳的分析, UnpooledDataSource 中定义了如下静态代码块,在UnpooledDataSource 加载时会通过该静态代码块将己在DriverManager 中注册的JDBC Driver 复制一份到UnpooledDataSource.registeredDrivers 集合中。

UnpooledDataSource.initializeDriver()方法主要负责数据库驱动的初始化,该方法会创建配置中指定的Driver 对象,并将其注册到DriverManager 以及上面介绍的UnpooledDataSource.registeredDrivers 集合中保存。

猜你喜欢

转载自blog.csdn.net/qq_36642340/article/details/81506919