package com.huawei.db;
import java.util.Hashtable;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import org.apache.log4j.Logger;
import com.huawei.common.BaseException;
import com.huawei.esb.FileManager;
public class DataSourceConnectionPool
{
//默认的数据源
public static String dataSource = "JDBC/ESB";
private static Logger logger = Logger.getLogger(DataSourceConnectionPool.class);
public DataSourceConnectionPool(String dsName)
{
String strDataSource = FileManager.getESBProperty(dsName);
if ((strDataSource == null) || "".equals(strDataSource))
{
logger.warn("The datasoruce hasn't configure, use default datasource[" + dataSource + "].");
}
else
{
dataSource = strDataSource;
}
}
/**
* 获取DataSource的连接
* @return
*/
public DataSource getDataSource()
{
DataSource ds;
Hashtable<Object, Object> ht = new Hashtable<Object, Object>();
try
{
// weblogic和websphere连接方式
InitialContext ic = new InitialContext(ht);
ds = (DataSource) ic.lookup(dataSource);
}
catch (NamingException ne)
{
try
{
//tomcat连接方式
InitialContext ic = new InitialContext(ht);
ds = (DataSource) ic.lookup("java:comp/env/jdbc/" + dataSource);
}
catch (NamingException e)
{
logger.error("Cannot connect to DataSource[" + dataSource + "], Message:" + e.getMessage());
throw new BaseException(e);
}
}
//如果初始化为空,直接抛出异常信息
if (ds == null)
{
throw new BaseException("Cnnot inittial any DataSource[" + dataSource + "]");
}
return ds;
}
}
分享到:
相关推荐
本文将深入解析“ConnectionPool”(数据库连接池)的工作原理,常见实现及使用方法。 **一、数据库连接池的概念** 数据库连接池,简单来说,就是管理数据库连接的池化技术。它预先创建一定数量的数据库连接,当多...
4. 获取和释放连接:使用DataSource提供的getConnection()方法获取连接,使用完后调用Connection的close()方法,实际上连接会被放回连接池而不是真正关闭。 此外,除了DBCP,还有其他流行的数据库连接池实现,比如...
javax.sql.DataSource connectionPool = (javax.sql.DataSource) ctx.lookup("java:comp/env/MySqlserver"); Connection conn = connectionPool.getConnection(); out.print("DB connection pool run OK!"); ...
- `javax.sql.DataSource connectionPool = (javax.sql.DataSource)ctx.lookup("java:comp/env/mytest_ds");`:通过JNDI查找之前定义的数据源。 - `Connection conn = connectionPool.getConnection();`:从数据源...
apache出品,用来取代老旧的dbcp
Java_C3P0_ConnectionPool.rar 文件包含的是关于Java中C3P0数据库连接池的实现和使用知识。C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,尤其是在...
### DBCP(Database Connection Pool)数据库连接池详解 #### 一、简介 DBCP(Database Connection Pool)是一个开源的数据库连接池实现,它依赖于Apache Jakarta commons-pool对象池机制。DBCP允许应用程序直接...
Druid是一个优秀的数据库连接池组件,而AtomikosDataSource则是处理分布式事务的重要工具。下面我们将详细探讨如何利用Spring、Druid和AtomikosDataSource来实现这些功能。 1. **Spring框架与数据源** Spring提供...
Java数据库连接池,通常简称为...在`connectionPool-master`这个文件夹中,可能包含了关于Java数据库连接池的示例代码、配置文件或文档,你可以通过学习这些内容来深入了解如何在实际项目中应用和配置数据库连接池。
数据源(DataSource)是Java应用程序与数据库交互的重要接口,它在数据连接池(Connection Pool)的基础上提供了一种高效、安全的管理数据库连接的方式。在Java的JDBC API中,DataSource接口是 javax.sql.DataSource...
private LinkedList<Connection> connectionPool = new LinkedList<Connection>(); public MyDataSource() { for (int i = 0; i ; i++) { connectionPool.add(new MyConnection(creatConnection(), this)); } ...
标题中的“开源dbcp,获取datasource”指的是Apache Commons DBCP(Database Connection Pool),这是一个在Java环境下广泛使用的开源数据库连接池组件。Apache Commons DBCP是Apache软件基金会的一个项目,它提供了...
将 client-adapter.es7x-1.1.5-jar-with-dependencies.jar 替换plugin下的jar可以解决druid报错问题,注意版本1.1.5,不是这个版本不一定能解决
DBCP(Database Connection Pool)是Apache软件基金会的Commons项目中的一个组件,它提供了一种数据库连接池的实现。数据库连接池在初始化时会创建一定数量的数据库连接,并将其保存在一个池中,当应用程序需要连接...
在本例中,它被用于DBCP(Database Connection Pool),即数据库连接池,这是Java应用中管理数据库连接的关键技术。 **Apache Commons Pool详解** Apache Commons Pool是一个高效的、基于接口的池化库,允许开发者...
**HikariCP**,全称为Hikari Connection Pool,是一款高效、低延迟的JDBC连接池。它的设计目标是提供最小的资源消耗和最佳的性能。HikariCP以其卓越的性能和对数据库连接管理的精细控制,在许多大型项目中被广泛应用...
- **Oracle Universal Connection Pool (UCP)**:Oracle公司提供的连接池,专为Oracle数据库设计,提供高级特性。 5. **如何使用DataSource**: - 首先,需要在应用服务器的配置文件(如web.xml或application....
DBCP(Database Connection Pool)是Apache Commons项目中的一个数据库连接池组件。数据库连接池在应用服务器中扮演着重要角色,它可以有效地管理数据库连接,避免频繁创建和销毁连接带来的性能开销。DBCP提供了...
本篇文章将主要探讨连接池的基本概念、工作原理以及如何在实际项目中使用`ConnectionPool.java`这样的类。 首先,理解数据库连接池的工作原理至关重要。当一个应用需要访问数据库时,不再直接创建新的数据库连接,...