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

📄 poolbean.java

📁 JSP网络办公自动化系统开发完整的很好好的
💻 JAVA
字号:
package cn.edu.buaa.nlsde.bean;
//连接池
import java.io.Serializable;
import java.sql.*;
import java.util.*;
public class PoolBean implements java.io.Serializable {
	private String strDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
	private String strURL = "jdbc:odbc:EIMS";
	private int iSize = 1;
	private String strUserName = "sa";
	private String strPassword = "password";
	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());
				}
			}
		}
	}
}

⌨️ 快捷键说明

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