连接池是一种特殊的池技术,池技术本质上是一种缓存技术,池中存放的资源直接申请、创建的代价比较大,通过将这些资源缓存、复用,达到高并发场景下提升性能的目的。
显然,池需要提供的两个基本功能是
- 资源申请
- 资源归还
池需要保证
对于连接池,其中存放的资源是连接对象,连接对象有些特别,
https://blog.csdn.net/Hack_Bug/article/details/110914703
https://zhuanlan.zhihu.com/p/99058186
成熟的开源连接池
理解了连接池的原理就可以了,没有必要什么都从头写一遍,那样会花费很多时间,并且性能及稳定性也不一定满足要求。事实上,已经存在很多流行的性能优良的第三方数据库连接池jar包供我们使用。如:
Apache commons-dbcp
c3p0
Druid
HikariCP
其中c3p0已经很久没有更新了。DBCP更新速度很慢,基本处于不活跃状态,而Druid和HikariCP处于活跃状态稍微好一点点。