一、数据库连接池
1.1 什么是数据库连接池
在使用jdbc编程时,每次访问数据库都需要创建连接对象,访问完毕后也需要断开连接(销毁对象)。
比如说:网站的每日用户访问量是10万次,这时候就需要对数据库访问10万次,需要10万次创建和断开连接对象,频繁的创建和断开连接,这使访问数据库的效率非常低。
数据库连接池技术:管理连接对象。
1.应用程序就不需要创建和断开连接对象,而是交给数据库连接池管理
2.数据库连接池断开,不是销毁对象,而是把连接对象归还给连接池。
数据库连接池基本参数:
1.初始化大小:数据库连接池里面初始的连接对象个数
2.最大连接数:数据库连接池里面最大的连接对象个数
3.最大等待时间:用户通过连接池取连接对象时,需要等待的时间
4.最大空闲连接:数据库连接池里面,在用户访问趋于稳定时,最大的空闲连接个数
5.最小空闲连接:在用户访问趋于顶峰时,数据库连接池里面剩余的最小连接对象个数。
优点:通过数据库连接池管理连接对象,减少了数据库连接对象的创建和销毁,提高咱们数据库的访问效率。
1.2 DataSource接口:
数据库连接池技术:由sun 公司制定数据库连接池规范(数据库连接池接口),让不同的数据库厂商来实现这-套规范,提供自己的数据库连接池具体的实现。
目前市面流行的数据库连接池技术: DBCP 和C3p0
1.3 DBCP数据源
DBCP数据库连接池(DataBase Connection Pool), 是由apache组织提供的数据库连接池技术,开源免费。
在项目中开发中,使用DBCP的基本步骤:
-
前提导入DBCP的jar包: commons - dbcp. jar , commons -pool.jar a
-
DBCP获取连接对象:设置连接参数。
四个连接参数:dr iverName,url, use rname, password.
DBCP获取连接对象具体的方式:
第一种:直接使用BasicDataSource类创建数据源对象,从而获取连接对象。
在使用BasicDataSource类创建一个数据源对象时, 需要手动给数据源对象设置属性值,然后获取数据库连接对象。下面通过一个案例来演示BasicDataSource 类的使用,具体步骤如下。
(1)在Eclipse 中创建一 个名称为chapter10 的Web项目,在项目chapter10 中导入mysql-connector-java-5.0.8-bin.jar、commons-dbcp-1.4.jar以及commons- pool- 1.6.jar 3个JAR包,并发布到类路径下,然后在项目的src目录下创建包cn.itcast.chapter10.example,并在该包下创建一个example01类,该类采用手动方式获取数据库的连接信息和数据源的初始化信息,如下图所示: