一、数据库链接池
1.1、数据库链接池
在JDBC编程中,每次创建和断开Connention对象都会消耗一定的时间和IO资源。因为在Java程序与数据库之间建立连接时,数据库端要验证用户名和密码,并且要为这个连接分配资源,Java 程序则要把代表连接的java sql. Connection对象等加载到内存中,所以建立数强库连接的开销很大,尤其是在大量的并发访问时。假如某网站一天的访问量是 10万,那么,访网站的服务器就需要创建、断开连接10 万次,频繁地创建、断开数据库连接势必会影响数据库的访问效率,甚至导致数据库崩溃。
为了避免频繁地创建数据库连接,数据库连接池技术应运而生。数据库连接池负责分配、管深和释放数据库连接,它允许应用程序重复使用现有的数据库连接,而不是重新建立。
1.2、DataSource接口
为了获取数据库连接对象( Connetion), JDBC提供了javax.sql.DataSource 接口,它负责与数据库建立连接,并定义了返回值为Connection对象的方法,具体如下。
●Connection getConnection()
●Connection getConnection(String username, String password)
1.3、DBCP数据源
DBCP是数据库连接池(DataBase Connection Pool)的简称,是Apache组织下的开源连接池实现,也是Tomcat服务器使用的连接池组件。单独使用DBCP数据源时,需要在应用程序中导入两个JAR包,具体如下:
1、commons-dbcp.jar包
commons-dbcp.jar包是DBCP数据源的实现包,包含所有操作数据库连接信息和数据库连接池初始化信息的方法,并实现了DataSource接口的getConnection()方法
2、 commons-pool.jar包
commons-pool.jar包是DBCP数据库连接池实现包的依赖包,为commons-dbcp.jar包中的方法提供了支持。可以这么说,没有该依赖包,commons-dbcp.jar包中的很多方法就没有办法实现。
这两个JAR包可以在Apache官网地址“http://commons.apache.org/proper/”中查询下载到。其中,commons-dbcp.jar中包含两个核心的类,分别是BasicDataSourceFactory和BasicDataSource,它们都包含获取DBCP数据源对象的方法。
3、BasicDataSource类常用方法
void setDriverClassName(String driverClassName) 设置数据库的驱动名称
void setUrl(String url) 设置链接数据库路径
void setUesrname(String username) 设置数据库登录账号