MySQL-第十五篇使用连接池管理连接
1、数据库连接池的解决方案是:
当应用程序启动时,系统主动建立足够的数据库连接,并将这些连接组成一个连接池。每次应用程序请求数据库连接时,无需重新打开连接,而是从连接池中取出已有的连接使用,使用完后不再关闭数据库连接,而是直接将连接归还给连接池。
2、数据库连接池是Connection对象的工厂。JDBC数据库连接池使用javax.sql.DataSource(数据源)来表示,DataSource只是一个接口,其开源的实现有DBCP、C3P0等。
3、DBCP数据源
相关的jar文件:
1》commons-dbcp.jar:连接池的实现。
2》commons-pool.jar:连接池实现依赖库。
一种连接方式举例:
//创建数据源对象 BasicDataSource ds=new BasicDataSource(); //设置驱动 ds.setDriverClassName("com.mysql.jdbc.Driver"); //设置连接数据库的url ds.setUrl("jdbc:mysql://localhost:3306/world"); //设置连接数据库的用户名 ds.setUsername("root"); //设置连接数据库的密码 ds.setPassword("1234"); //设置连接池的初始连接数 ds.setInitialSize(5); //设置连接池最多可有多少个活动连接数 ds.setMaxActive(20); //设置连接池中最少有2个空闲的连接 ds.setMinIdle(2);
整个应用只需要一个数据源。关于使用:
//通过数据源获取数据库连接 Connection conn=ds.getConnection();
数据库访问结束后,还是像往常一样关闭数据库连接。
//释放数据库连接。实际是归还到连接池。 conn.close();
4、C3P0数据源
C3P0可以自动清理不再使用的Connection,还可以自动清理Statement和ResultSet。
jar包:c3p0-0.9.1.2.jar
连接方式举例:
//创建数据源对象 ComboPooledDataSoruce ds=new ComboPooledDataSoruce(); //设置驱动 ds.setDriverClassName("com.mysql.jdbc.Driver"); //设置连接数据库的url ds.setUrl("jdbc:mysql://localhost:3306/world"); //设置连接数据库的用户名 ds.setUsername("root"); //设置连接数据库的密码 ds.setPassword("1234"); //设置连接池最大连接数 ds.setMaxPoolSize(40); //设置连接池最小连接数 ds.setMinPoolSize(10); //设置连接池的初始连接数 ds.setInitialPoolSize(10); //设置连接池中的缓存Statement的最大数 ds.setMaxStatements(180);
整个应用只需要一个数据源。关于使用:
//通过数据源获取数据库连接 Connection conn=ds.getConnection();
数据库访问结束后,还是像往常一样关闭数据库连接。
//释放数据库连接。实际是归还到连接池。 conn.close();
转载于:https://www.cnblogs.com/ZeroMZ/p/11373030.html
MySQL-第十五篇使用连接池管理连接相关推荐
- JDBC:使用连接池管理连接
2019独角兽企业重金招聘Python工程师标准>>> 一.数据库连接池 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显 ...
- CCIE理论-第十五篇-IPV6-重分布+ACL+前缀列表
CCIE理论-第十五篇-IPV6-重分布+ACL+前缀列表 重分布前面讲过,这里再讲一次+实操+效果看看 在ipv6中重分布直连路由是需要加上include-connected的 环境 就这么简单哈, ...
- CCIE-LAB-第十五篇-IPV6-BGP+VPN6+RT
CCIE-LAB-第十五篇-IPV6-BGP+VPN6+RT 实际中,思科只会给你5个小时去做下面的全部配置 这个是CCIE-LAB的拓扑图 问题 翻译: 根据这些要求,将IPV6连接从总部通过SP扩 ...
- CCNA-第十五篇-DHCP配置+SDN介绍(最后一章)
CCNA-第十五篇-DHCP配置+SDN介绍 各位好,如果有一直看下来的谢谢支持 这里是CCNA的最后一篇了,如果真的能吸收很多内容,那么普通的东西基本上都没什么大问题了.除非就是工作经验 下一篇就到 ...
- python学习[第十五篇] 文件系统
python学习[第十五篇] 文件系统 对文件系统访问大多数都通过os模块实现. os 模块文件/目录访问函数 文件处理 mkfifo() 创建命名通道只用于linux remove(path)/un ...
- 坚持的力量 第十五篇
第十五篇 漩涡鸣人 从他身上,我看到了进步和向上的力量,经别人推荐,我发现我渐渐的喜欢上了<火影忍者>. 首先,<火影>中的歌曲很有震撼力和穿透力,产生心灵的共鸣 ...
- 秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题
秒杀多线程第十五篇 关键段,事件,互斥量,信号量的"遗弃"问题 在<秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量>中对经典多线程同步互斥问题进行了回 ...
- CCNP-第十五篇-VXLAN(一)
CCNP-第十五篇-VXLAN(一) 到了这个阶段呢,怎么说呢,简单的NP级别的交换我都跳过去了,但是后期会补, 所以这个衔接可能新手或者不会的看的有的迷茫 但是出自个人原因只好这么干了,VXLAN3 ...
- python连载第十五篇~史上最全列表知识源码+答案
#2017-12-19 19:34:41 December Tuesday the 51 week, the 353 day #python连载第十五篇~list列表#列表定义,访问,索引,操作,切片 ...
- Python之路【第十五篇】:Web框架
Python之路[第十五篇]:Web框架 Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 7 ...
最新文章
- 小白兔写话_小学二年级写话-我的小白兔
- 电子工程师必须知道的10个网站 !!!
- 预告:大牛现身说法 TensorFlow在工程项目中的应用 | AI 研习社
- LiveVideoStack线上交流分享 (十一) —— B站Up主上传质量调优实践
- JenneyBRO – 模块化wordpress博客主题
- android 方法参数默认值,Kotlin函数默认值的完全讲解
- 快速排序法实战入门(推荐)
- 3.docker run / create
- 语音识别 自然语言处理
- html杜邦分析图,怎么用Excel做动态杜邦分析图表?
- channel使用法则
- 计算机中求声音传输时间公式,计算机常用计算公式汇总
- Xshell下载过期怎么办
- 解决Post请求中文乱码问题
- 如何直观地打印一个链表
- linux ssh 远程浏览器,使用浏览器通过ssh连接linux方法
- CF #768 E.Flipping Ring
- 《痞子衡嵌入式半月刊》 第 50 期
- 常用adb命令的使用
- SAP系统PM模块概述-OVERVIEW
热门文章
- 敢从头写一个OFFICE,你这么厉害,怎么不来解几个BUG
- 六石管理学:提出分形进度的概念
- 全网首发:MAC上运行SHELL脚本,typeset -l报错
- WORD中如何进行双行合一
- CSDN排名更新又出问题了?
- 遇到问题,尽量自己解决,实在解决不了再问别人
- php5.6源码包,PHP-5.6.8 源码包编译安装
- trunc函数_这几个舍入函数你都会用吗?
- python之定义默认参数_035-Python之定义默认参数
- java和python哪个运行速度快_为什么Python代码的运行速度比较慢呢?这会影响Python语言的扩张吗?...