加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Apache-DBCP数据库连接池的使用

发布时间:2020-12-13 18:17:06 所属栏目:百科 来源:网络整理
导读:《Apache-DBCP数据库连接池的使用》要点: 本文介绍了Apache-DBCP数据库连接池的使用,希望对您有用。如果有疑问,可以联系我们。 1.什么是数据库连接池? 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用法式中体现得尤为突出.对数据库连

《Apache-DBCP数据库连接池的使用》要点:
本文介绍了Apache-DBCP数据库连接池的使用,希望对您有用。如果有疑问,可以联系我们。

Apache-DBCP数据库连接池的使用

1.什么是数据库连接池?

数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用法式中体现得尤为突出.对数据库连接的管理能显著影响到整个应用法式的伸缩性和健壮性,影响到法式的性能指标.数据库连接池正是针对这个问题提出来的.

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间跨越最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏.这项技术能明显提高对数据库操作的性能.

2.为什么必要数据库连接池?

当对数据库的拜访过大时,如果没有数据库连接池,那么频繁的对数据库进行连接、关闭连接等操作对数据库的压力是非常大的;如果使用了数据库连接池则同时拜访数据库的连接就会被很好的控制,从而提高性能.

2.关键配置

为了发挥数据库连接池的作用,在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的.无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量.连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池哀求的连接数超过最大连接数量时,这些哀求将被加入到等待队列中.

最小连接数setMinIdle():

是数据库一直坚持的数据库连接数,所以如果应用程序对数据库连接的使用量不大,将有大量的数据库资源被浪费.

初始化连接数setInitialSize():

连接池启动时创立的初始化数据库连接数量.

最大连接数setMaxIdle():

是连接池能申请的最大连接数,如果数据库连接哀求超过此数,后面的数据库连接哀求被加入到等待队列中.如果设置为非正数则表示不限制.

最大等待时间setMaxWaitMillis():

当没有可用连接时,连接池等待连接被归还的最大时间,超过时间则抛出异常,可设置参数为0或者负数使得无限等待(根据分歧连接池配置).

//可以创立这样一个工具类public class ConnectionManager { private static String DRIVER = "com.mysql.jdbc.Driver"; private static String URL = "jdbc:mysql:///t_message"; //"jdbc:mysql:///t_message" private static String USERNAME = "root"; private static String PASSWORD = "rootroot"; private static BasicDataSource datasource = new BasicDataSource(); static {  datasource.setDriverClassName(DRIVER); datasource.setUrl(URL); datasource.setUsername(USERNAME); datasource.setPassword(PASSWORD); datasource.setInitialSize(5); datasource.setMaxIdle(20); datasource.setMinIdle(5); datasource.setMaxWaitMillis(3000); } /** * 获取数据库连接池 * @return */ public static DataSource getDataSource(){ return datasource; } public static Connection getConnection() { Connection conn = null; try { Class.forName(DRIVER); conn = datasource.getConnection(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { throw new DataAccessException("数据库连接异常"); } return conn; }}

编程之家PHP培训学院每天发布《Apache-DBCP数据库连接池的使用》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读