一、 应用程序直接建立数据库连接模型
应用程序直接每次访问数据库时,都建立创建一个数据库的链接,这样每次建立这样的连接都需要耗费的资源,当同时有很多用户在使用应用程序时,可能会导致应用程序崩溃。
图为应用程序直接建立数据库连接模型
二、使用数据库连接池优化模型
数据库连接池的基本思路是,平时建立适量的数据库的连接,放在一个集合中,当有用户需要建立数据库连接的时候,直接到集合中取出一个数据库连接对象(Connection),这样不用再需要重新创建,这样会节省大量的资源,当用户不需要在对数据库进行访问了,那么就将数据库连接对象(Connection)重新放回到集合中,以便方便下次使用。
数据库连接池优化模型图
1、关于连接池中的连接数量的一些规定:
- (1)最小连接数:是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费(适量).
- (2)最大连接数:是连接池能申请的最大连接数,如果数据库连接请求超过次数,后面的数据库连接请求将被加入到等待队列中,这会影响以后的数据库操作。通常在使用完起始集合中的连接后,会再重新创建一些数据库连接对象,用来满足用户需求,但是这种新建并不是无限制的。
- (3)当使用完的连接对象需要重新放回到集合中以备使用,但是超过最小连接数的连接在使用完不会马上被释放,他将被放到连接池中等待重复使用或是超时后最终被释放。
强制关闭连接或者数据库重启后无法自动重连 | 强制关闭连接或者数据库重启可以自动连接 |
没有自动的去回收空闲连接的功能 | |
DBCP提供最大连接数 |
c3p0提供最大空闲时间 |
dbcp并没用相应功能 | c3p0可以控制数据源加载的prepareedstatement数量,并且可以设置帮助线程的数量来提升JDBC操作速度 |
以上所述是小编给大家介绍的Java中JDBC连接池的基本原理及实现方式,希望对大家有所帮助。在此也非常感谢大家对网站的支持!
以上是 的全部内容, 来源链接: