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

📄 dbconnectionmanager.java

📁 j2ee程序。 spring、xml、 实现增加内容选项。
💻 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 + -