jdbc深入~连接池

jdbc连接数据有点直来直取感觉,一般在大型的web应用里面(淘宝,天猫啥的),如果用这种直来直去的,那得创建多少个数据库连接啊,很显然是不可能的

web应用每一次的数据操作都要建立一个连接,系统分配一次内存资源,既然涉及内存资源,就应该知道是有限宝贵的,有的人说,我有做数据连接关闭啊,这里就要说到关键点了。你可以这样去测试一下问题,你不做关闭,然后去循环创建数据库连接,你就会发现了,像mysql这,你再用可视化工具打开,你还会发现数据繁忙不让打开,

大型网站在线用户都有上千了吧,同时间操作的话,你数据量大查询速度慢,来不及关闭呢,再操作,数据库繁忙爆掉了,后面人花钱买了东西,你这边没有数据,你不得被人打上门去么?

频繁的进行数据库连接操作势必占用很多的系统资源,而数据库开放给你的连接有限,肯定会影响到你网站的速度,这样的服务器不崩溃都不正常


连接池技术

     一次性创建可接受范围内的数据库连接,需要就获取,不需要就放回

dbcp,c3p0, Proxool, BoneCP , Druid 等等

连接池原理:

编写实现DataSource 接口类,

                     以构造器创建多个数据库的连接(以8个位列,别问这么多,幸运数字),

                     全部放到LinkedList<Connection> linkedList= new LinkedList<Connection>();

linkedList.add(你的数据库连接对象);

8-1*n(总数是8,每次减1,n总共次数),也就是每次用时从linkedList里面移除一个linkedList.removeFirst();

总共是8次,总不可能操作8次数据库之后就没了吧,jdbc也是有创建,操作完就有关闭的吧,这里关闭的时候你又要添加回来

(连接池这里不做实际的关闭,统称为释放)linkedList.add(你的数据库连接对象)重新放入linkedList,这样始终维持着8个数据库连接

当然(当并发增加是,连接池会不断的自动创建新的连接满足调用,直到达到连接池的最大数目;当连接池连接减少甚至没有时,连接池自动关闭一些连接,保持最小数目,这里就不考虑了

这是我对数据库连接池的理解

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

斗码士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值