文章目录
一,连接池的简介
二,DB连接池的认识
三,DB连接池的作用
四,图文介绍
五, Java中开源的数据库连接池
正文:
一,连接池的简介
连接池用于创建和管理数据库连接的缓冲池技术,缓冲池中的连接可以被任何需要他们的线程使用。当一个线程需要用JDBC对一个数据库操作时,将从池中请求一个连接。当这个连接使用完毕后,将返回到连接池中,等待为其他的线程服务。
二,DB连接池的认识
背景:1.数据库连接是一种关键的有限的昂贵的资源 。
2.多用户的网页应用程序中| [即JAVAEE企业级]体现得尤为突出。
3.一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。
即对于DB连接池:数据库连接池就是保存了很多数据库连接对象的对象池。
三,DB连接池的作用
1.尽可能多地重用消耗内存的资源,节省内存。
2.提高了服务器地服务效率,能够支持更多的客户服务。
3.提高程序运行效率。
同时,可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。
- 1)最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费。
- 2)最大连接敖是连搂池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的敖据库操作。
具体实施:
1.负责分配、管理和释放数据库连接。
2.允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个
3.释放空闲时间超过最大空闲时间的数据库连接.来避免因为没有释放数据库连接而引起的数据库连接遗漏
4.能明显提高对数据库操作的性能
四,图文介绍
1.没连接池时:
2.有连接池时:
五, Java中开源的数据库连接池
在Java中开源的数据库连接池有以下几种:
1.C3P0,2.Proxool,3.Jakarta DBCP,4.DDConnectionBroker,5.DBPool,6.XAPool,7.Primrose,8.SmartPool,9.MiniConnectionPoolManager,10.BoneCP,11.Druid等
而对于Druid,对我们来说是个不错的选择。
原因:
Druid不仅是一个数据库连接池,还包含一个ProxyDriver、一系列内置的JDBC组件库、一个SQL Parser。
支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等。
Druid针对Oracle和MySql做了特别优化,比如:
Oracle的PS Cache内存占用优化;
MySql的ping检测优化;
Druid提供了MySql、Oracle、Postgresql、SQL-92的SQL的完整支持,这是一个手写的高性能SQL Parser,支持Visitor模式,使得分析SQL的抽象语法树很方便。
通过Druid提供的SQL Parser可以在JDBC层拦截SQL做相应处理,比如说分库分表、审计等。Druid防御SQL注入攻击的WallFilter,就是通过Druid的SQL Parser分析语义实现的。