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

📄 connectpool.java

📁 基于corba的资源池,实现了实例池供客户端调用,并且实例池对实例的分配采用策略模式支持随即抽取,最近使用和循环抽取三个不同策略.(在visibroke下面开发的)
💻 JAVA
字号:
//数据库连接池
package database;

import database.ConnectPool;
import java.sql.*;
import java.util.*;

public class ConnectPool extends AbstractConnectPool 
{
	private static ConnectPool pool_instance = null;
	private static String dataSource; //数据库连接URL
	protected Connection connection; 
	
	private ConnectPool()
	{
		super();
	}
	
	public static ConnectPool getInstance(String dS)
	{
		try{
			if(pool_instance == null)
			{
				dataSource = dS;
				pool_instance = new ConnectPool();
				pool_instance.initial();
			}
		}catch(Exception exc){
			exc.printStackTrace();
		}
		return pool_instance;
	}
 		
	public Object create()
	{
		try{
			connection = DriverManager.getConnection(dataSource);
			return connection;
		}catch( Exception e ){
			e.printStackTrace();
			return( null );
		}
	}

	public Hashtable initial()
	{
		//初始化创建MinConnectionCount个数的连接
		try {
			for (int i = 0; i < pool_instance.min; i++) 
			{
				connection = DriverManager.getConnection(dataSource);
				if (connection == null)
					continue;
				pool_instance.unlocked.put(connection,(Long.valueOf((long)System.currentTimeMillis())));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return pool_instance.unlocked;
	}
	
	public boolean validate( Object o )
	{
	   try{
	      return( ! ( ( Connection ) o ).isClosed() );
	   }catch( SQLException e ){
	      e.printStackTrace();
	      return( false );
	   }
	}

	public void expire( Object o )
	{
		try{
			( ( Connection ) o ).close();
		}catch( SQLException e ){
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

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