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

📄 dboracleconnpool.java

📁 投票程序源代码,很好用的哦,我也是转载的!
💻 JAVA
字号:
/**
 * @DBOracleConnPool.java 2007-8-15 
 * @Author yangpeiliang
 * @E_mail:ypl728@hotmail.com
**/
package com.sigth;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ResourceBundle;

import oracle.jdbc.pool.OracleConnectionCacheImpl;

public class DBOracleConnPool implements java.io.Serializable
{
	/**Oracle的jdbc连接字符串中的子协议名(即驱动程序类型名)*/
	private transient static java.lang.String url = null;

	/**Oracle的jdbc连接字符串中的子名(即网络编码名称)*/
	private transient static String urlOLPS = null;

	/**Oracle的jdbc连接连接缓冲池处理对象*/
	private static transient OracleConnectionCacheImpl connectionPoolOLPS = null;

	private static String username = null;
	private static String password = null;
	private static int maxConnNum = 50;
	private static DBOracleConnPool connPool = null;

	private DBOracleConnPool()
	{
	    initParam();
	    createConnectionPool();
	}

	public static DBOracleConnPool getInstance()
	{
	    if (connPool == null)
	    {
	        connPool = new DBOracleConnPool();
	    }
	    return connPool;
	}

	private static void initParam()
	{
		ResourceBundle rb  =  ResourceBundle.getBundle("DBInfo");
	    url = rb.getString("url");
	    username = rb.getString("user");
	    password = rb.getString("passwd");
	    maxConnNum = Integer.parseInt(rb.getString("maxConnNum"));
	}

	private void createConnectionPool()
	{
	    try
	    {
	        if (connectionPoolOLPS == null)
	        {
	            connectionPoolOLPS = new OracleConnectionCacheImpl();
	            connectionPoolOLPS.setURL(url);
	            connectionPoolOLPS.setUser(username);
	            connectionPoolOLPS.setPassword(password);
	            connectionPoolOLPS.setMinLimit(1);
	            connectionPoolOLPS.setMaxLimit(maxConnNum);
	            connectionPoolOLPS.setCacheScheme(OracleConnectionCacheImpl.
	                                              FIXED_RETURN_NULL_SCHEME);
	        }
	    }
	    catch (SQLException sqlE)
	    {
	        sqlE.printStackTrace();
	    }
	    catch (Exception e)
	    {
	        e.printStackTrace();
	    }
	}

	public synchronized Connection getConnection()
	{
	    Connection conn = null;
	    if (connectionPoolOLPS == null)
	    {
	        createConnectionPool();
	    }

	    try
	    {
	        conn = connectionPoolOLPS.getConnection();
	    }
	    catch (SQLException sqlE1)
	    {
	        sqlE1.printStackTrace();
	        try
	        {
	            conn = connectionPoolOLPS.getConnection();
	        }
	        catch (SQLException sqlE2)
	        {
	            sqlE2.printStackTrace();
	        }
	    }
	    return conn;
	}

	public void closeConnectionPool()
	{
	    if (connectionPoolOLPS != null)
	    {
	        try
	        {
	            connectionPoolOLPS.close();
	        }
	        catch (SQLException sqlE)
	        {
	            sqlE.printStackTrace();
	        }
	        connectionPoolOLPS = null;
	    }
	}
}

⌨️ 快捷键说明

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