`
FML
  • 浏览: 13781 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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

 

              }

 

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

 

              Driver driver = (Driver) (Class.forName(this.jdbcDriver).newInstance());

 

              DriverManager.registerDriver(driver); // 注册 JDBC 驱动程序

 

              // 创建保存连接的向量 , 初始时有 0 个元素

 

              connections = new Vector();

 

              // 根据 initialConnections 中设置的值,创建连接。

 

              createConnections(this.initialConnections);

 

              System.out.println(" 数据库连接池创建成功! ");

 

       }

 

       /**

 

        * 创建由 numConnections 指定数目的数据库连接 , 并把这些连接

 

        * 放入 connections 向量中

 

        *

margin: 0cm 0cm 0pt;

分享到:
评论
1 楼 duronshi 2009-02-12  
这个应该是dbcp的连接池类吧,前两天我在网上也搜索到了,并且已经成功应用了,呵呵

当前这代码应该还不全

相关推荐

    java数据库连接池

    标题:Java数据库连接池 描述:本篇将详细介绍Java数据库连接池的概念,代码实现以及其在实际项目中的应用。数据库连接池是Java开发中优化数据库访问效率的关键技术,通过复用预创建的数据库连接,避免频繁创建和...

    JAVA数据库连接池类

    本篇文章将深入解析一个自定义的JAVA数据库连接池类,帮助开发者更好地理解和运用这一关键技术。 首先,连接池的基本思想是预先创建一定数量的数据库连接,并存储在一个集合(如Vector)中,供应用程序按需获取和...

    Java数据库连接池的原理与应用.pdf

    Java数据库连接池的原理与应用 在Java开发领域,数据库连接池(Database Connection Pool,简称DBCP)是一种提高数据库访问性能、降低资源消耗的重要技术。它通过预先建立一定数量的数据库连接,存储在一个“池”中...

    java数据库连接池.rar

    总的来说,Java数据库连接池如C3P0和Druid,以及Spring的JdbcTemplate,都是为了优化数据库操作而设计的工具。它们各自有其特点和优势,开发者可以根据项目需求选择合适的技术。在使用过程中,充分理解和合理配置...

    Java数据库连接池的使用示例

    Java数据库连接池是Java应用程序管理数据库连接的一种高效方式。它避免了每次需要访问数据库时创建新的连接,而是预先创建一定数量的连接并保存在池中,当程序需要时可以从池中获取,用完后归还,从而提高了系统性能...

    java数据库连接池c3p0

    Java数据库连接池C3P0是一种常用的开源数据库连接管理工具,它通过提供连接池服务,提高了应用程序处理数据库连接的效率,降低了系统资源的消耗。在Java应用中,尤其是在服务器端,数据库连接的创建和关闭是相对耗时...

    轻量级java数据库连接池

    本项目提供了一个轻量级的Java数据库连接池实现,旨在简化开发过程,提高应用性能并降低资源消耗。下面将详细介绍这个轻量级Java数据库连接池的设计理念、工作原理以及如何使用。 1. **设计理念** 轻量级数据库...

    java 数据库连接池

    Java数据库连接池是一种重要的技术,它在Java应用程序与数据库交互时起到了关键的作用。数据库连接池在多线程、高并发的环境下尤其重要,因为它能够有效地管理和重用数据库连接,从而提高系统性能,减少资源消耗。 ...

    java 数据库 连接池驱动.rar

    Java数据库连接池驱动是Java应用程序在访问数据库时用于优化资源管理的一种技术。它提供了一种在多个数据库操作之间重用数据库连接的方式,从而避免了频繁创建和关闭连接带来的性能开销。连接池的核心思想是池化资源...

Global site tag (gtag.js) - Google Analytics