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

📄 dbconnectionpool.java

📁 公司自己开发的工作流引擎
💻 JAVA
字号:
package cn.com.iaspec.workflow.db;

import java.sql.*;
import java.util.*;

public class DBConnectionPool{
  private Vector freeConnections=new Vector();
  private int maxConn;
  private int connNumb;

  private String URL;
  private String password;
  private String user;

  public DBConnectionPool(String URL,String user,String password,int maxConn){
    this.URL=URL;
    this.user=user;
    this.password=password;
    this.maxConn=maxConn;
  }

  public synchronized void freeConnection(Connection con){
    System.out.println("begin freeConnection...");
    freeConnections.addElement(con);
    connNumb--;
    notifyAll();
    System.out.println("connection count is:"+connNumb);
  }

  public synchronized Connection getConnection()
      throws SQLException{
    Connection con=null;
    if(freeConnections.size()>0){
      con=(Connection)freeConnections.firstElement();
      freeConnections.removeElementAt(0);
      try{
        if(con.isClosed()){
          con=getConnection();
        }
      }
      catch(SQLException e){
        con=getConnection();
      }
    }
    else if(maxConn==0||connNumb<maxConn){
      con=newConnection();
    }
    if(con!=null){
      connNumb++;
    }
    System.out.println("connection count is:"+connNumb);
    return con;
  }

  private Connection newConnection()
      throws SQLException{
    System.out.println("begin newConnection...");
    Connection con=DriverManager.getConnection(URL,user,password);
    return con;
  }

}

⌨️ 快捷键说明

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