`

Java 数据库连接池

阅读更多

关键字: 数据库操作

/连接池类

package tuha.sczb.db;

 

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;

 

       }

       /**

 

        * 构造函数

 

        */

 

       public ConnectionPool() {

 

       }

 

       /**

 

        * 返回连接池的初始大小

 

        *

 

        * @return 初始连接池中可获得的连接数量

 

        */

 

       public int getInitialConnections() {

 

              return this.initialConnections;

 

       }

 

       /**

 

        * 设置连接池的初始大小

 

        *

 

        * @param 用于设置初始连接池中连接的数量

 

        */

 

       public void setInitialConnections(int initialConnections) {

 

              this.initialConnections = initialConnections;

 

       }

 

       /**

 

        * 返回连接池自动增加的大小

 

        *

 

        * @return 连接池自动增加的大小

 

        */

 

       public int getIncrementalConnections() {

 

              return this.incrementalConnections;

 

       }

 

       /**

 

        * 设置连接池自动增加的大小

 

        * @param 连接池自动增加的大小

 

        */

 

       public void setIncrementalConnections(int incrementalConnections) {

 

              this.incrementalConnections = incrementalConnections;

 

       }

 

       /**

 

        * 返回连接池中最大的可用连接数量

 

        * @return 连接池中最大的可用连接数量

 

        */

 

       public int getMaxConnections() {

 

              return this.maxConnections;

 

       }

 

       /**

 

        * 设置连接池中最大可用的连接数量

 

        *

 

        * @param 设置连接池中最大可用的连接数量值

 

        */

 

       public void setMaxConnections(int maxConnections) {

 

              this.maxConnections = maxConnections;

 

       }

 

       /**

 

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

 

        *

 

        * @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; // 如果己经创建,则返回

 

              }

font-size: small; font-family: Time

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics