Java实现数据库连接池的代码.

??package com.kyo.connection; ??

??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 ConnectionParam param; ???

???private String testTable = \测试连接是否可用的测试表名,默认没有测试表 ???

???private Vector connections = null; // 存放连接池中数据库连接的向量 , 初始时为

???// null,它中存放的对象为PooledConnection 型 ???

???public void setParam(ConnectionParam param { ???this.param = param; ???} ???

???public ConnectionParam getParam( { ???return param;

???} ??? ???/** ???* 构造函数 ???*

???* @param param ???*/

???public ConnectionPool(ConnectionParam param { ???this.param = param; ???} ??? ???/** ???*

???* 获取测试数据库表的名字 ???*

???* @return 测试数据库表的名字 ???*/ ???

???public String getTestTable( { ???return this.testTable; ???} ??? ???/** ???*

???* 设置测试表的名字 ???*

???* @param testTable

???* String 测试表的名字 ???*/ ???

???public void setTestTable(String testTable { ???this.testTable = testTable; ???} ??? ???/**

???* 创建一个数据库连接池,连接池中的可用连接的数量采用类成员 initialConnections 中设置的值 ???*/ ???

???public synchronized void createPool( throws Exception { ???

???// 确保连接池没有创建

???// 如果连接池己经创建了,保存连接的向量 connections 不会为空 ???if (connections != null { ???return; // 如果己经创建,则返回 ???} ???

???// 实例化 JDBC Driver 中指定的驱动类实例

???Driver driver = (Driver (Class.forName(this.param.getDriver( ???.newInstance(;

???DriverManager.registerDriver(driver; // 注册 JDBC 驱动程序 ???// 创建保存连接的向量 , 初始时有 0 个元素 ???connections = new Vector(; ???

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4