?? dbconnmanager.java
字號:
package test;
import java.sql.*;
import java.util.*;
/*連接池管理類,可以管理多個數(shù)據(jù)庫連接池*/
public class DBConnManager {
//連接池名列表
private Vector poolnames = new Vector();
//驅(qū)動程序名列表
private Vector drivernames = new Vector();
//數(shù)據(jù)庫標(biāo)識列表
private Vector dbids = new Vector();
//用戶名列表
private Vector usernames = new Vector();
//密碼列表
private Vector passwds = new Vector();
//最大連接數(shù)列表
private Vector maxconns = new Vector();
//連接池隊列
private Hashtable connPools = new Hashtable();
public DBConnManager() {
//添加mysql數(shù)據(jù)庫的連接信息
poolnames.addElement("mysql");
drivernames.addElement("org.gjt.mm.mysql.Driver");
dbids.addElement("jdbc:mysql://localhost/testmysql");
usernames.addElement("root");
passwds.addElement("");
maxconns.addElement("10");
//添加access數(shù)據(jù)庫的連接信息
poolnames.addElement("access");
drivernames.addElement("sun.jdbc.odbc.JdbcOdbcDriver");
dbids.addElement("jdbc:odbc:TestData");
usernames.addElement("");
passwds.addElement("");
maxconns.addElement("5");
//創(chuàng)建連接池
createPools();
}
/*將連接返回給由指定的連接池*/
public void releaseConnection(String name, Connection con) {
DBConnPool pool = (DBConnPool) connPools.get(name);
if (pool != null)
pool.releaseConnection(con);
}
/*得到一個指定連接池中的連接*/
public Connection getConnection(String name) {
DBConnPool pool = (DBConnPool) connPools.get(name);
if (pool != null)
return pool.getConnection();
return null;
}
/*關(guān)閉所有連接*/
public synchronized void closeConns() {
Enumeration allPools = connPools.elements();
while (allPools.hasMoreElements()) {
DBConnPool pool = (DBConnPool) allPools.nextElement();
pool.closeConn();
}
}
/*創(chuàng)建連接池*/
private void createPools() {
for(int i = 0; i<poolnames.size();i++){
String poolname = poolnames.elementAt(i).toString();
String drivername = drivernames.elementAt(i).toString();
String dbid = dbids.elementAt(i).toString();
String username = usernames.elementAt(i).toString();
String passwd = passwds.elementAt(i).toString();
int maxconn=0;
try {
maxconn = Integer.parseInt(maxconns.elementAt(i).toString());
}
catch (NumberFormatException e) {
e.printStackTrace();
}
DBConnPool pool = new DBConnPool(poolname, drivername, dbid, username, passwd, maxconn);
connPools.put(poolname, pool);
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -