day18 15.自定义连接池

本文详细解释了JDBC中连接池的概念,强调DataSource接口的重要性,并介绍了连接池如何通过改变Connection对象的close()方法行为来实现资源的有效管理和复用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们写的是连接池吗?Connection对象绝对不能关。现在写的玩意不是连接池。因为现在讲的是JDBC,连接池也是JDBC里面的,人家那是SUN公司定义的标准。标准,你那不是标准。既然是标准,你做连接池得符合人标准。DataSource才是数据源/连接池。你要做一连接池必须实现这接口,所有的连接池必须实现这个接口。

DataSource是子接口,子接口有父接口嘛。父接口里面的方法也需要重写。

实现了DataSource接口之后我这个就是标准的连接池了。代码要耦合度降低,不要依赖于任何东西,要符合标准。JDBC标准里面Connection对象用完就要close,close()方法不再希望销毁Connection对象,而是把它放回到连接池。原来的close()方法是销毁,现在的close()方法也是销毁,但是我们希望它不是销毁,而是放回到连接池。是指放回到开源的连接池,不是我自己写的连接池,因为你自己写的连接池根本就没做这事。你自己写的连接池根本没实现这个功能。

继承是绝对不靠谱的,close()方法是Connection接口里面的。你不知道具体实现类,你要知道具体实现类也行。但是你要是使用具体实现类,那就要用到驱动程序里面的包了。用到驱动包里面的类又是紧密耦合了。继承也是能做增强的。

装饰模式。


连接池就是一个集合,里面装了几个Connection,用的时候就从里面取一个,取完之后就放回去,这就是最基本的连接池。什么是连接池?实现了DataSource接口。DataSource里面有个getConnection()方法获得连接,那怎么放回去呢?Connection自己的close()方法的行为已经改变了,连接池已经把那个方法的行为改变了,你一调用close()方法就放回去了。


 

转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/6686498.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值