?? dbconnectionmanager.java
字號:
package com.gd.jdbc;
import java.sql.Connection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import com.gd.jdbc.impl.GdDbConnectionPool;
public class DbConnectionManager {
static private DbConnectionManager instance; //單例模式
private static Map connPool = new HashMap();
/**
* 返回唯一實例.如果是第一次調用此方法,則創建實例
* @return DbConnectionManager
*/
static synchronized public DbConnectionManager getInstance() {
if (instance == null) {
instance = new DbConnectionManager();
}
return instance;
}
/**
* 防止其它對象創建本類的實例
*/
private DbConnectionManager() {
init();
}
/**
* 根據名稱從map中獲取連接
* @param name
* @return
*/
public static Connection getConnection(String name) {
Connection conn = null;
try {
//從連接池中獲取連接
DbConnectionPool pool = (GdDbConnectionPool)connPool.get(name);
if (pool != null)
conn = pool.getConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
return conn;
}
}
/**
* 將連接返回給連接池
* @param name 連接池名字
* @param con 連接對象
*/
public static void returnConnection(String name, Connection conn) {
try {
DbConnectionPool pool = (GdDbConnectionPool)connPool.get(name);
if (pool != null)
pool.returnConnection();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 關閉所有連接
*/
public synchronized void release() {
try {
Set set = connPool.entrySet();
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
Map.Entry map = (Map.Entry)iterator.next();
DbConnectionPool pool = (GdDbConnectionPool)map.getValue();
//關閉連接池
pool.setConnWitch("OFF");
}
connPool = null;
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 創建連接池
* @param props 連接池屬性
*/
private void createPools() {
DbConnectionPool pool = new GdDbConnectionPool();
//設定連接池的大小
pool.setMaxConns(10);
try {
//表示創建連接池
pool.setConnWitch("ON");
//將創建后的連接池放在Map中,用mysql表示是用于連接mysql數據庫的
connPool.put("mysql", pool);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 初始化
*/
private void init() {
//創建連接池
createPools();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -