⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbconnmanager.java

📁 数据库连接池的写法
💻 JAVA
字号:
/*
 * 创建日期 2005-10-21
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package databaseConnectPool;

/**
 * @author Administrator
 *
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
import java.sql.*;
import java.util.*;

public class DBConnManager {
  //连接池名列表
  private Vector poolnames =new Vector();
  //驱动程序名列表
  private Vector drivernames=new Vector();
  //数据库标识列表
  private Vector dbids=new Vector();
  //用户名列表
  private Vector usernames=new Vector();
  //用户密码列表
  private Vector passwds=new Vector();
  //最大连接数列表
  private Vector maxconns=new Vector();
  //连接池队列
  private Hashtable connPools=new Hashtable();

  public DBConnManager() {
    //添加Access数据库的连接信息
    /*
    poolnames.addElement("access");
    drivernames.addElement("sun.jdbc.odbc.JdbcOdbcDriver");
    dbids.addElement("jdbc:odbc:shopping");
    usernames.addElement("");
    passwds.addElement("");
    maxconns.addElement("5");

    //添加SQL Server2000数据库的连接信息
    poolnames.addElement("sqlserver2000");
    drivernames.addElement("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    dbids.addElement("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=oa");
    usernames.addElement("sa");
    passwds.addElement("");
    maxconns.addElement("5");
    */
    
//  添加Sybase数据库的连接信息
    poolnames.addElement("Sybase");
    drivernames.addElement("com.sybase.jdbc2.jdbc.SybDriver");
    dbids.addElement("jdbc:sybase:Tds:bcjdu:5000/gdzc");
    usernames.addElement("sa");
    passwds.addElement("");
    maxconns.addElement("5");

    //连接Mysql数据库信息
    /*
    poolnames.addElement("mysql");
    drivernames.addElement("org.gjt.mm.mysql.Driver");
    dbids.addElement("jdbc:mysql://localhost/shopping");
    usernames.addElement("");
    passwds.addElement("");
    maxconns.addElement("5");

    //连接Oracle8i/9i数据库
    poolnames.addElement("oracle");
    drivernames.addElement("oracle.jdbc.driver.OracleDriver");
    dbids.addElement("jdbc:oracle:thin:@localhost:1521:shopping");
    usernames.addElement("");
    passwds.addElement("");
    maxconns.addElement("5");
    */

    //创建连接池
    createPools();
  }

  /*将连接返回给由指定的连接池*/
  public void returnConnection(String name,Connection conn){
    DBConnPool pool=(DBConnPool) connPools.get(name);
    if (pool!=null)
    {
      pool.returnConnection(conn);
    }
  }

  /*得到一个指定连接池中的连接*/
  public Connection getConnection(String name){
    DBConnPool pool=(DBConnPool) connPools.get(name);
    if (pool!=null)
    {
      return pool.getConnection();
    }
    return null;
  }

  /*关闭所有连接*/
  public synchronized void closeConns(){
    Enumeration allPools=connPools.elements();
    while (allPools.hasMoreElements()){
      DBConnPool pool=(DBConnPool) allPools.nextElement();
      pool.closeConn();
    }
  }

  /*创建连接池*/
  private void createPools(){
    for (int i=0;i<poolnames.size();i++)
    {
      String poolname=poolnames.elementAt(i).toString();
      String drivername=drivernames.elementAt(i).toString();
      String dbid=dbids.elementAt(i).toString();
      String username=usernames.elementAt(i).toString();
      String passwd=passwds.elementAt(i).toString();
      int maxconn=0;
      try{
        maxconn=Integer.parseInt(maxconns.elementAt(i).toString());
      }catch (NumberFormatException e){
        e.printStackTrace();
      }
      DBConnPool pool=new DBConnPool(poolname,drivername,dbid,username,
                                     passwd,maxconn);
      connPools.put(poolname,pool);
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -