connectionbean.java
package com.pool;
import java.io.serializable;
import java.sql.*;
public class connectionbean implements java.io.serializable
{
private connection vconnection=null;
private boolean busestate=false;
public connectionbean(){}
public connectionbean(connection connection)
{
if(connection!=null)
{
vconnection=connection;
}
}
public connection getconnection()
{
return vconnection;
}
public void setconnection(connection connection)
{
vconnection=connection;
}
public void setusestate(boolean busestate)
{
this.busestate=busestate;
}
public boolean getusestate()
{
return busestate;
}
public void close()
{
try
{
vconnection.close();
}
catch(sqlexception sqlexception)
{
system.err.println(sqlexception.getmessage());
}
}
}
//连接池
poolbean.java
package com.pool;
import java.io.serializable;
import java.sql.*;
import java.util.*;
import com.pool.connectionbean;
public class poolbean implements java.io.serializable
{
private string strdriver=null;
private string strurl=null;
private int isize=0;
private string strusername="";
private string strpassword="";
private connectionbean vconnectionbean=null;
private vector vpool=null;
public poolbean(){}
public void setdriver(string strdriver)
{
if(strdriver!=null)
{
this.strdriver=strdriver;
}
}
public string getdriver()
{
return strdriver;
}
public void seturl(string strurl)
{
if(strurl!=null)
{
this.strurl=strurl;
}
}
public string geturl()
{
return strurl;
}
public void setsize(int isize)
{
if(isize>1)
{
this.isize=isize;
}
}
public int getsize()
{
return isize;
}
public string getusername()
{
return strusername;
}
public void setusername(string strusername)
{
if(strusername!=null)
{
this.strusername=strusername;
}
}
public void setpassword(string strpassword)
{
if(strpassword!=null)
{
this.strpassword=strpassword;
}
}
public string getpassword()
{
return strpassword;
}
public void setconnectionbean(connectionbean vconnectionbean)
{
if(vconnectionbean!=null)
{
this.vconnectionbean=vconnectionbean;
}
}
public connectionbean getconnectionbean() throws exception
{
connection vconnection=getconnection();
connectionbean vconnectionbean=new connectionbean(vconnection);
vconnectionbean.setusestate(true);
return vconnectionbean;
}
private connection createconnection() throws exception
{
connection vconnection=null;
vconnection=drivermanager.getconnection(strurl,strusername,strpassword);
return vconnection;
}
public synchronized void initializepool() throws exception
{
if(strdriver==null)
{
throw new exception("没有提供驱动程序名称!");
}
if(strurl==null)
{
throw new exception("没有提供url!");
}
if(isize<1)
{
throw new exception("连接池大小小于1!");
}
try
{
class.forname(strdriver);
for(int iindex=0;iindex<isize;iindex++)
{
connection vconnection=createconnection();
if(vconnection!=null)
{
connectionbean vconnectionbean=new connectionbean(vconnection);
addconnection(vconnectionbean);
}
}
}
catch(exception eexception)
{
system.err.println(eexception.getmessage());
throw new exception(eexception.getmessage());
}
}
private void addconnection(connectionbean vconnectionbean)
{
if(vpool==null)
{
vpool=new vector(isize);
}
vpool.addelement(vconnectionbean);
}
public synchronized void releaseconnection(connection vconnection)
{
for(int iindex=0;iindex<vpool.size();iindex++)
{
connectionbean vconnectionbean=(connectionbean)vpool.elementat(iindex);
if(vconnectionbean.getconnection()==vconnection)
{
system.err.println("释放第"+iindex+"个连接!");
vconnectionbean.setusestate(false);
break;
}
}
}
public synchronized connection getconnection() throws exception
{
connectionbean vconnectionbean=null;
for(int iindex=0;iindex<vpool.size();iindex++)
{
vconnectionbean=(connectionbean)vpool.elementat(iindex);
if(vconnectionbean.getusestate()==false)
{
vconnectionbean.setusestate(true);
connection vconnection=vconnectionbean.getconnection();
return vconnection;
}
}
try
{
connection vconnection=createconnection();
vconnectionbean=new connectionbean(vconnection);
vconnectionbean.setusestate(true);
vpool.addelement(vconnectionbean);
}
catch(exception eexception)
{
system.err.println(eexception.getmessage());
throw new exception(eexception.getmessage());
}
return vconnectionbean.getconnection();
}
public synchronized void emptypool()
{
for(int iindex=0;iindex<vpool.size();iindex++)
{
system.err.println("关闭第"+iindex+"jdbc连接!");
connectionbean vconnectionbean=(connectionbean)vpool.elementat(iindex);
if(vconnectionbean.getusestate()==false)
{
vconnectionbean.close();
}
else
{
try
{
java.lang.thread.sleep(20000);
vconnectionbean.close();
}
catch(interruptedexception interruptedexception)
{
system.err.println(interruptedexception.getmessage());
}
}
}
}
}
文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




