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

📄 poolbean.java

📁 Easy_Buy是一个在线销售系统
💻 JAVA
字号:
//package eshop;
import java.sql.*;
import java.util.*;

public class PoolBean {
  private int inUse=0;	//实际使用中的连接数	
  private int maxconn;	//连接池支持的最大连接数
  private Vector connections=new Vector();	
  private String poolMessage;	//连接池的状态
  private String driver;	//数据库驱动程序	
  private String url;		//数据库URL
  private String username;	//数据库用户名
  private String password;	//数据库密码


  /*构造函数*/
  public PoolBean() {
    //this.driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
    //this.url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=eshop";
    this.driver="sun.jdbc.odbc.JdbcOdbcDriver";
    this.url="jdbc:odbc:MyDataSource";
    this.username="sa";
    this.password="";
    this.maxconn=100;
    this.poolMessage="构造成功!";
  }

  /*将连接返回给连接池*/
  public synchronized void releaseConnection(Connection conn){
    connections.addElement(conn);
    inUse--;
  }

  /*从连接池得到一个连接*/
  public synchronized Connection getConnection(){
    Connection conn=null;
    if(connections.size()>0){
      conn=(Connection)connections.elementAt(0);
      connections.removeElementAt(0);
      try{
        if(conn.isClosed()){
          conn=getConnection();
        }
      }
      catch(Exception e){
        e.printStackTrace();
        poolMessage="错误!试图获取连接时出错!";
      }
    }
    else if(maxconn==0||inUse<maxconn){
      conn=newConnection();
    }
    if(conn!=null){
      inUse++;
    }
    return conn;
  }

  /*创建新的连接*/
  private Connection newConnection(){
    Connection conn=null;
    try{
      Class.forName(driver);
      conn=DriverManager.getConnection(url,username,password);
    }
    catch(Exception e){
      e.printStackTrace();
      poolMessage="错误!建立连接时出错!";
      return null;
    }
    return conn;
  }

  /*关闭所有的连接*/
  public synchronized void closeConn(){
    Enumeration allConnections=connections.elements();
    while(allConnections.hasMoreElements()){
      Connection conn=(Connection)allConnections.nextElement();
      try{
        conn.close();
      }
      catch(Exception e){
        e.printStackTrace();
        poolMessage="错误!关闭连接时错误!";
      }
      connections.removeAllElements();
    }
  }

  /*返回连接池的消息*/
  public String getPoolMessage(){
    return poolMessage;
  }
}

⌨️ 快捷键说明

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