一个简单的论坛

源代码在线查看: connpool.java

软件大小: 1027 K
上传用户: kuaile13y
关键词: 论坛
下载地址: 免注册下载 普通下载 VIP

相关代码

				package bbs;
				
				import java.sql.*;
				import java.util.*;
				
				public class ConnPool {
					private int ConnNow=0;
					private Vector connections = new Vector();
					private String PoolName;
					private String DriverName;
					private String DbId;
					private String UserName;
					private String Password;
					private int MaxConn;
				
					public ConnPool(String PoolName, String DriverName, String DbId, String UserName, String Password, int MaxConn) {
						this. PoolName = PoolName;
						this. DriverName = DriverName;
						this. DbId = DbId;
						this. UserName = UserName;
						this. Password = Password;
						this. MaxConn = MaxConn;
					}
				
					public synchronized void releaseConnection(Connection conn) {
						connections.addElement(conn);
						ConnNow--;
					}
				
					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 ex) {
				            ex.printStackTrace();
				         }
						}
						else if (MaxConn == 0 || ConnNow 							conn = newConnection();
						}
						if (conn != null) {
							ConnNow++;
						}
						return conn;
					}
				
				
					private Connection newConnection() {
						Connection conn = null;
						try {
							Class.forName(DriverName);
							conn = DriverManager.getConnection(DbId,UserName, Password);
						}
						catch (Exception e) {
							e.printStackTrace();
							return null;
						}
						return conn;
					}
				
					public synchronized void closeConn() {
						Enumeration allConnections = connections.elements();
						while (allConnections.hasMoreElements()) {
							Connection conn = (Connection) allConnections.nextElement();
							try {
								conn.close();
							}
							catch (SQLException e) {
								e.printStackTrace();
							}
						}
						connections.removeAllElements();
					}
				}
							

相关资源