Spring Boot 与 JDBC 核心接口(一)驱动加载

JDBC生命周期?

1.加载驱动

java.sql.Drvier

2.获取连接

java.sql.DrvierManager

3.获取表达式

java.sql.Connection

4.执行sql

java.sql.Statement

5.获取结果集

java.sql.ResultSet

6.关闭连接

java.sql.ResultSet

 

JDBC用到了什么设计模式?

JDBC通过不断地返回下一个生命周期类,将继承关系转化成了关联关系,我认为它是桥接模式的最佳实践

返回生命周期类这个说法有点抽象,代码是怎么实现的呢?

第一步获取连接时,返回了表达式:

随后表达式返回java.sql.Statement 执行sql

执行sql后返回java.sql.ResultSet 

如此层层嵌套

最后在java.sql.ResultSet 类中 关闭连接

 

一.驱动接口:java.sql.Drvier 

* The interface that every driver class must implement.
* <P>The Java SQL framework allows for multiple database drivers.
* <P>When a Driver class is loaded, it should create an instance of
* itself and register it with the DriverManager. This means that a
* user can load and register a driver by calling:
* <p>
* {@code Class.forName("foo.bah.Driver")}
* <p>

官方定义驱动接口允许多个数据驱动,具体实现在java.sql.DrvierManager中定义

 

以SpringBoot为例,我将尝试寻找它是如何加载驱动:

第一步,找到java.sql.Drvier  按住Ctrl+鼠标左键,寻找什么地方在使用

发现了一个熟悉的东西,Spring的自动配置文件,点进去一看,果然是这里

Spring Boot 2.2.2 默认连接池为dbcp2?嗯 看来是这样。但是我没有这个依赖呀,当然sourceType的类路径就无法打开了。但是没关系,我们全局搜索这个类在哪调用了:

一目了然的命名,点进去看看:

Actual DataSource configurations??实际的数据源配置 看来就是这个了 
DataSourceConfiguration 类 有四个方法 对应四个数据源 :
Tomcat Pool DataSource 
Hikari DataSource 
DBCP DataSource
Generic DataSource 

如何使用?

以dbcp为例,导入maven依赖,在yml中配置即可,

 

JDBC 核心接口(二) 驱动管理 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值