1.使用连接池重写工具类
1.1 连接池概念、原理及其使用
1.11 什么是连接池
数据库连接池是负责分配、管理、和释放数据库连接的;
它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。
1.12 连接池的原理
1.13 连接池的使用
-
为什么要用连接池
数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出。
目的:解决建立数据库连接耗费资源和时间很多的问题,提高性能。 -
如何使用连接池
建一个类,实现接口 定义三个方法
init()初始化资源,
获取连接getConnection
关闭资源(关闭连接)
1.14 影响连接池性能的因素
数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数制约。
无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。
连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。
数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素:
最小连接数
是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费。
最大连接数
是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。
最小连接数与最大连接数差距
最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。
1.2 编写标准的数据源(规范)
Java为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口。这样应用程序可以方便的切换不同厂商的连接池!
常见的连接池:DBCP、C3P0。
接下来,我们就详细的学习连接池,我们将先完成自定义标准连接池的编写。
自定义数据库连接池要实现javax.sql.DataSource接口,一般都叫数据源。