JDBC——数据库连接池(理论设计介绍)

在之前的ORM和DAO中发现 方法里都会有连接数据库的代码块
也就是在数据访问对象 当对象调用方法时 每一次调用都会与数据库创建连接 假设同时调用多个方法 那么创建的连接就非常多 和线程池设计的最初缘由一样——
创建连接和关闭连接的过程也是比较消耗时间的,当多线程并发的时候,系统就会变得很卡顿。
同时,一个数据库同时支持的连接总数也是有限的,如果多线程并发量很大,那么数据库连接的总数就会被消耗光,后续线程发起的数据库连接就会失败。

线程池考虑的时CPU的资源占用 而这个是考虑数据库本身支持的连接量

但是,数据库连接池和线程池实现设计思路不一样——这里首要解决的就是连接个数的限制 以及单个连接的循环利用 
思路:

既然每次在调用DAO接口的方法时都会进行连接 避免此种情况的最佳方式就是将其分离出 放入数据库连接池里 每次需要连接就向数据库连接池借用 而不是在调用它时自个创建 借了还下一次或者其他线程使用。其连接总数量维持在限制范围中

并且,倘若发生多线程并发情况,连接池里的连接被借用光了,那么其他线程就会临时等待,直到有连接被归还回来,再继续使用。
整个过程,这些连接都不会被关闭,而是不断的被循环使用,从而节约了启动和关闭连接的时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值