内容发布更新时间 : 2025/5/16 17:59:09星期一 下面是文章的全部内容请认真阅读。
连接池原理
虽然现在用APACHE COMMONS DBCP可以非常方便的建立数据库连接池,
但是像这篇文章把数据库连接池的内部原理写的这么透彻,注视这么完整, 真是非常难得,让开发人员可以更深层次的理解数据库连接池,真是非常感 谢这篇文章的作者。
import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.util.Enumeration; import java.util.Vector; public class ConnectionPool {
private String jdbcDriver = \数据库驱动
private String dbUrl = \数据 URL
private String dbUsername = \数据库用户名
private String dbPassword = \数据库用户密码
private String testTable = \测试连接是否可用的测试表名,默认没有测试表
private int initialConnections = 10; // 连接池的初始大小
private int incrementalConnections = 5;// 连接池自动增加的大小
private int maxConnections = 50; // 连接池最大的大小
private Vector connections = null; // 存放连接池中数据库连接的向量 , 初始时为 null
// 它中存放的对象为 PooledConnection 型 /**
* 构造函数 *
* @param jdbcDriver String JDBC 驱动类串
* @param dbUrl String 数据库 URL
* @param dbUsername String 连接数据库用户名
* @param dbPassword String 连接数据库用户的密码 * */
public ConnectionPool(String jdbcDriver,String dbUrl,String dbUsername,String dbPassword) {
this.jdbcDriver = jdbcDriver;
this.dbUrl = dbUrl;
this.dbUsername = dbUsername;
this.dbPassword = dbPassword; } /**
* 返回连接池的初始大小 *
* @return 初始连接池中可获得的连接数量 */
public int getInitialConnections() {
return this.initialConnections; } /**
* 设置连接池的初始大小
*
* @param 用于设置初始连接池中连接的数量 */
public void setInitialConnections(int i