思考:
程序中连接如何管理?
1.连接资源宝贵:需要对连接管理
2.连接:
a) 操作数据库,创建连接
b) 操作结束,关闭
分析:
设计频繁的连接的打开关闭,影响程序的运行效率。
用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。
连接管理:
预先创建一组连接,有点饿时候每次取出一个;用完后,放回。
学习连接池:
1)自定义一个连接池
2)学习优秀的连接池组件
a) DBCP
b)C3P0
程序实现思路:
1)制定“初始化连接数目”(APP启动的时候,就执行创建)
2)指定“最大连接数”
3)制定“当前使用连接个数”(不能超出最大连接数)
参考:http://www.javaweb1024.com/java/JavaWebzhongji/2015/06/01/736.html
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。
代码实现:
1)MyPool.java 连接池类
2)指定全局参数:初始haunted数目,最大连接数,当前连接
3)构造函数:循环创建多个连接
4)写一个创建连接的方法
5)获取连接
--->判断:池中有连接,直接拿
---> 池中没有连接,
---> 判断,是否达到最大连接数;达到,抛出异常;没有达到最大连接数,新的连接
6)释放连接
自定义连接池
2.开源的连接池
概述:
Sun公司约定,如果是连接池技术,需要实现一个接口!Javax.sql.DataSource;
(DBCP和C3P0都要实现那个接口)
1)DBCP连接池
连接池也叫DataSource。
连接池的作用:管理连接。
DBCP是Apache软件基金组织下的开源连接池实现,使用DBCP数据源,应用程序应该在系统中增加如下两个jar包:
- Commons-dbcp.jar: 连接池的实现
- Commons-pool.jar: 连接池实现的依赖库
Tomcat的连接池正式采用该连接池来实现的。该数据库连接池既可以与应用服务器整合使用,也可由应用程序独立使用。
核心类:BasicDataSource