`

DBPool

阅读更多
DBPool
http://www.snaq.net/java/DBPool/

download jar
(http://www.snaq.net/java/DBPool/DBPool-5.0.zip)

config a file name is dbConfig.properties   note: name can be changed to any
the following is a example for config

#  name=       # the name of dblog file
#  logfile=    # the url of logfile 
#  dateformat= # format of save log
#  drivers=    # db drivers for different dbPool (eg:oracle.jdbc.driver.OracleDriver,: \t\n\r\fcom.mysql.jdbc.Driver)
# 
#  the following is a example for a db pool that name is message. if want to add a new pool,add a some context as following format.
#  <-- "Standard" properties start-->
#  message.url=         # url of db.
#  message.user=        # user of db.
#  message.password=    # password of db.
#  message.minpool=     # minimum number of pooled connections, or 0 for none.
#  message.maxpool=     # maximum number of pooled connections, or 0 for none.
#  message.maxconn=     # Deprecated, but checked for backwards-compatibility.
#  message.maxsize=     # maximum number of possible connections, or 0 for no limit.
#  message.expiry=      # Deprecated, but checked for backwards-compatibility.
#  message.idletimeout= # idleTimeout idle timeout (seconds) for idle pooled connections, or 0 for no timeout.
#  message.validator=   # Sets the validator class for {@link Connection} instances.
#  message.decoder=     # Sets the {@link PasswordDecoder} class.
#  message.init=        # Setup initial connections in pool (default: 0).
#  <-- "Standard" properties end-->
#  <-- "Advanced" properties start-->
#  message.cache=                  # Determines whether to perform statement caching (true or false).
#  message.access=                 # set Pool Access Random or FIFO (random or fifo) (default: fifo).
#  message.async=                  # Determines whether to perform asynchronous object destruction. If set to true then each time an object is destroyed
                                   # the operation is done in a separate thread, allowing the method to return immediately
#  message.recycleafterdelegateuse # Sets whether the connection may be recycled if the underlying raw/delegate connection has been used (default: false).
#  message.mbean=                  # Setup JMX MBean access to pool (if requested). (true or false).
#  <-- "Advanced" properties end-->
#  <-- "Custom logging" properties start-->
#  message.logfile=    # the url of this pool log file
#  message.dateformat= # log format
#  message.debug=      # is debug the pool
#  <-- "Custom logging" properties end-->
#
# @author leoLee<leo@protelsws.com>
name=dblog
logfile=\log\db.log
dateformat=yyyy-MM-dd HH:mm:ss
drivers=oracle.jdbc.driver.OracleDriver
message.url=jdbc:oracle:thin:@xx.xx.xx.xx:1521:PreIMS
message.user=xxxxx
message.password=xxxxx
message.minpool=1
message.maxpool=100
message.maxsize=100
message.idletimeout=3000
message.init=5



build a fater class  NOTE:can be used anywhere

package org.protelnet.com.db;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;

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

import snaq.db.ConnectionPoolManager;
import snaq.util.logging.LogUtil;


/**
 * 
 * @author leoLee<leo@protelsws.com>
 *
 */
public class PoolManager {
	/** Apache Commons Logging instance for writing log entries. */
	private static Log logger = LogFactory.getLog(PoolManager.class.getName());;
	/** Custom logging utility (backward-compatible). */
	private static LogUtil logUtil;
	  
	private static ConnectionPoolManager poolManager;
	
	private static Connection connection = null;
	
    private static final String CONFIG_FILENAME = "dbConfig.properties";
    private static final String CONFIG_DIRECTORY = System.getProperty("user.dir") + File.separator;// + "conf";
	
	private static ConnectionPoolManager getConnectionPoolManager(){
		if(poolManager == null)
			try {
				poolManager = ConnectionPoolManager.getInstance(new File(CONFIG_DIRECTORY, CONFIG_FILENAME));
				log_info("init poolManager end...");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		return poolManager;
	}
	
	public static Connection getConnection(String poolName) throws SQLException{
		if(getConnectionPoolManager()==null)
			return null;
		connection = getConnectionPoolManager().getConnection(poolName);
		log_info("getConnection for "+poolName);
		return connection;
	}
	
	public static void release(String poolName){
		if(getConnectionPoolManager()==null){
			return ;
		}
		if(getConnectionPoolManager().getPool(poolName)!=null)
			getConnectionPoolManager().getPool(poolName).release();
	};
	
	public static void releaseAll(){
		if(getConnectionPoolManager()==null){
			return ;
		}
		getConnectionPoolManager().release();
	};
	
    protected static void log_info(String s)
    {
	    String msg = PoolManager.class.getName() + ": " + s;
	    logger.info(msg);
	    if (logUtil != null)
	      logUtil.log(msg);
    }
}



a dome class

package org.protelnet.com.msg.db;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;

import org.protelnet.com.db.PoolManager;


/**
 * ConnectionManager to get and maintain a connection
 * @author leoLee < leo@protelsws.com >
 */
public class ConnectionManager extends PoolManager{

    private final static String POOLNAME = "message";

    public ConnectionManager() {
    }

    
    /**
     * get connection 
     * @return java.sql.Connection
     * @throws SQLException 
     * @throws java.lang.Exception
     */
    public static Connection getConnection() throws SQLException{
    	return getConnection(POOLNAME);
    }

    /**
     * close connection
     * @throws java.lang.Exception
     */
    public static void closeConnection(Connection connection) throws Exception {
       if(connection!=null)
          connection.close();
    }
    
    public static void release(){
    	release(POOLNAME);
    }
    
    public static void releaseAll(){
    	PoolManager.releaseAll();
    }
    
分享到:
评论

相关推荐

    DBPool_v4.8.3.zip

    DBPool_v4.8.3.zip 是一个包含数据库连接池组件的版本包,主要用于管理和优化数据库连接的使用。在这个压缩包中,我们可以看到以下几个关键文件: 1. **style.css**:这是一个CSS(Cascading Style Sheets)文件,...

    DBpool 数据库连接池

    DBpool,作为这个特定压缩包的名称,很可能是一个特定的数据库连接池实现。在这个4.8.3版本的JAR文件中,我们可以期待找到一个优化数据库操作性能、提高系统效率的组件。 数据库连接池的基本原理是预先在内存中创建...

    DBPool_v4.8.3.jar

    好东西哦 DBPool 做数据库接入时的必备 DBPool_v4.8.3.jar

    Java数据库通用层源码DBPool_v4.8.3_src

    DBPool_v4.8.3_src是一个特定的数据库连接池的源代码版本,旨在提高数据库操作的性能和效率。在Java应用中,尤其是在高并发环境下,通过连接池管理数据库连接能有效地减少创建和销毁连接的开销,从而优化资源利用。 ...

    DBPool-5.0.zip_DBPool_DBPool-5.0.jar

    DBPool是一个专为Java应用程序设计的高效且可配置的数据库连接池组件,版本为5.0,主要目标是提供稳定、高性能的数据库连接管理服务。它不仅具备了基本的数据库连接池功能,如连接创建、复用、释放等,还引入了对象...

    dbpool dbpool mysql orcalce 操作数据库

    在IT行业中,数据库连接池(Database Connection Pool,简称dbpool)是系统管理和优化数据库操作的重要技术之一。数据库连接池提供了一种有效地管理数据库连接的方法,它允许程序在需要时重复使用已建立的连接,而...

    DBpool-5.0

    DBPool是一个高效的易配置的数据库连接池。它除了支持连接池应有的功能之外,还包括了一个对象池使你能够开发一个满足自已需求的数据库连接池

    DBPool_v4.8.3 source

    DBPool_v4.8.3 source 是一个关于数据库连接池(DBPool)的源码版本,主要用于管理和优化数据库连接的创建、分配与释放。数据库连接池是应用开发中常用的技术,尤其是在高并发环境下,它能有效地提高系统性能,降低...

    DBPool_v4.8.3_javadoc

    《DBPool_v4.8.3_javadoc》是关于数据库连接池DBPool的API文档,主要包含该版本的JavaDoc信息。JavaDoc是Java编程语言中的一个重要工具,它能够自动生成程序接口文档,使得开发者可以方便地了解和使用库、框架或...

    Dbpool,fileupload,mysql驱动

    在IT行业中,数据库连接池(Dbpool)、文件上传(Fileupload)和输入/输出(IO)操作以及MySQL JDBC驱动是四个关键的技术概念。这些技术在构建高性能、稳定且功能丰富的Web应用程序时起着至关重要的作用。 1. **...

    dbpool2.rar

    "dbpool2"可能是一个关于数据库连接池的实现或升级版本,可能是某个开源库或者特定项目的内部组件。在分析这个压缩包的内容前,我们先来深入理解一下数据库连接池的基本概念和工作原理。 数据库连接池在应用启动时...

    kagaedi web DBPOOL 带连接池

    【标题】"kagaedi web DBPOOL 带连接池" 涉及的主要知识点是Web服务(WebService)以及数据库连接池(DBPOOL)技术在Web应用中的运用。Web服务是一种通过HTTP协议进行通信的软件组件,允许不同系统之间交换数据。而...

    dbpool log4j slf4j

    整理的dbpool jar 下载地址,包含如下 jar包,下载包含到自己项目中即可用。 dbpool-7.0.jar dbpool-7.0-javadoc.jar log4j-1.2.17.jar slf4j-api-1.7.7.jar slf4j-log4j12-1.7.7.jar

    dbpool-0.96.jar

    数据库池 io.airlift/dbpool/0.96/dbpool-0.96.jar

    dbpool 系统工具

    dbpool 系统工具 rar格式 dbpool 系统工具 rar格式

    dbpool-5.0.jar

    JDBC连接池实用程序,支持基于时间的到期,语句缓存,连接验证以及使用池管理器的轻松配置。 net.snaq/dbpool/5.0/dbpool-5.0.jar

    dbpool-0.86.jar

    数据库池 io.airlift/dbpool/0.86/dbpool-0.86.jar

    DBpool.jsp

    DBpool.jsp

    dbpool-5.1.jar

    JDBC连接池实用程序,支持基于时间的到期,语句缓存,连接验证以及使用池管理器的轻松配置。 net.snaq/dbpool/5.1/dbpool-5.1.jar

Global site tag (gtag.js) - Google Analytics