Jboss中多个war包都使用 Jboss的数据库连接方式

package com.onecenter.cas.util;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

/**
  * This is a public tool class for FORONLINE!
  * @author chenqm
  * @version 1.0
  */
public class ConnectionPoolManager
{
	private Log log = LogFactory.getLog(ConnectionPoolManager.class);
	private static ConnectionPoolManager instance;	
	private DataSource ds = null;
    
  /** 
	* 构造函数私有以防止其它对象创建本类实例 
	*/ 
	private ConnectionPoolManager()
	{   		
        try {
             //这是获取关键
            Context initCtx=new InitialContext();
            // jboss 的数据库 配置文件 中的 portal-ds.xml 配置
            ds = (DataSource)initCtx.lookup("java:/ChinaWiservDS");
        } catch (NamingException e) {
            e.printStackTrace();
        }
	} 
                 
	/** 
      * 返回唯一实例.如果是第一次调用此方法,则创建实例 
	  * 
	  * @return ConnectionPoolManager 唯一实例 
	  */ 
	static synchronized public ConnectionPoolManager getInstance() 
	{ 
		if (instance == null)
		{ 
			instance = new ConnectionPoolManager(); 
		} 
		return instance; 
	} 

	/**
	  * 获取数据库连接	  
	  * @return - 返回一个可用数据库连接
	  */
	public Connection getConnection()
		throws SQLException
	{
		Connection cnn=null;
		try
		{
			if(ds == null)
				throw new Exception();
			cnn=ds.getConnection();
			cnn.setAutoCommit(false);
			if (cnn == null)
			{
				throw new Exception();
			}

		
			
			return cnn;
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
			throw new SQLException("连接池连接获取异常");
		}
	}

	
	/**
	  * 释放数据库连接
	  * @param cnn  欲释放回连接池的连接
	  * @return  
	  */
	public void closeConnection(Connection cnn)
	{
		try
		{

			if (cnn != null)
			{
				cnn.close();
				cnn = null;
			}
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值