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

📄 connectionpool.java

📁 java模式设计的经典练习和说明,包括常用的23种模式,如工厂模式
💻 JAVA
字号:
package com.accp.DB;
import java.util.*;
import java.sql.*;
public class ConnectionPool {

  private  ArrayList pools=new ArrayList();
  private String driver;
  private String url;
  private String uesrname;
  private String password;
  private int size=5;


  public ConnectionPool() {
  }
  public synchronized void initialPools() throws Exception{
   if(driver==null){
     System.out.print("dirver不能为空");
   }
   if(url==null){
    System.out.println("url不能为空");
    }
  if(size<0){
   System.out.println("大小不能为零");
   }
   Class.forName(driver);
   for(int i=0;i<size;i++){
    Connection con=DriverManager.getConnection(url,uesrname,password);
    PooledConnection poolcon=new PooledConnection(con);
    poolcon.setInUser(false);
    pools.add(poolcon);
   }
  }
  public synchronized void close(){
    try{
      Iterator its=pools.iterator();
      while(its.hasNext()){
        PooledConnection pool=(PooledConnection)its.next();
        pool.close();
      }
      pools=null;
    }catch(Exception e){
     e.printStackTrace();
    }
  }
  public synchronized Connection getConnection()throws Exception{
    Iterator its=pools.iterator();
     while(its.hasNext()){
       PooledConnection poolCon=(PooledConnection)its.next();
       if(!poolCon.isInUser())
         poolCon.setInUser(true);
         return poolCon.getConnection();
     }

    Class.forName(driver);
    Connection con=DriverManager.getConnection(url,uesrname,password);
    PooledConnection poolcon=new PooledConnection(con);
    poolcon.setInUser(true);
    pools.add(poolcon);
    return con;
  }
  public synchronized void releaseConnection(Connection con){
    Iterator its=pools.iterator();
    while(its.hasNext()){
     PooledConnection poolcon=(PooledConnection)its.next();
      if(poolcon.getConnection()==con)
      {
        poolcon.setInUser(false);
        break;
      }
    }
  }
  public String getDriver() {
    return driver;
  }
  public void setDriver(String driver) {
    this.driver = driver;
  }
  public String getUrl() {
    return url;
  }
  public void setUrl(String url) {
    this.url = url;
  }
  public String getUesrname() {
    return uesrname;
  }
  public void setUesrname(String uesrname) {
    this.uesrname = uesrname;
  }
  public String getPassword() {
    return password;
  }
  public void setPassword(String password) {
    this.password = password;
  }
  public int getSize() {
    return size;
  }
  public void setSize(int size) {
    this.size = size;
  }
}

⌨️ 快捷键说明

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