`
shihuan830619
  • 浏览: 583836 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

利用commons-dbcp和commons-pool搭建数据库连接池

    博客分类:
  • J2EE
阅读更多
依赖commons-dbcp-1.4.jar和commons-pool-1.5.6.jar和ojdbc14.jar

TestDbPools.java代码:
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
import org.apache.log4j.Logger;

/**
 * 数据库连接池
 * */
public class TestDbPools {

	static Logger logger = Logger.getLogger(TestDbPools.class);
	
	private static BasicDataSource dataSource = null;
	
	public TestDbPools(){
		
	}
	
	public static void init() {
		if (dataSource != null) {
			try {
                dataSource.close();
            } catch (Exception e) {
            	logger.error(e.getMessage());
            }
            dataSource = null;
        }

        try {
            Properties p = new Properties();
            p.setProperty("driverClassName", "oracle.jdbc.driver.OracleDriver");
            p.setProperty("url", "jdbc:oracle:thin:@192.168.1.10:1521:oraid");
            p.setProperty("password", "zznode");
            p.setProperty("username", "shihuan");
            p.setProperty("maxActive", "30");
            p.setProperty("maxIdle", "10");
            p.setProperty("maxWait", "1000");
            p.setProperty("removeAbandoned", "false");
            p.setProperty("removeAbandonedTimeout", "120");
            p.setProperty("testOnBorrow", "true");
            p.setProperty("logAbandoned", "true");

            dataSource = (BasicDataSource) BasicDataSourceFactory.createDataSource(p);
        } catch (Exception e) {
        	logger.error(e.getMessage());
        }
    }

	/**
	 * 外口调用方法,调用此方法即可获取一个数据库的连接池
	 * */
    public static synchronized Connection getConnection() {
        if (dataSource == null) {
            init();
        }
        Connection conn = null;
        if (dataSource != null) {
            try {
				conn = dataSource.getConnection();
			} catch (SQLException e) {
				logger.error(e.getMessage());
			}
        }
        return conn;
    }
}


OperatorDb.java代码:
private Connection conn = null;
	private PreparedStatement pstmt = null;
    private ResultSet rs = null;
	
    public ResultSet getRs(){
		conn = TestDbPools.getConnection();
		String sql = "SELECT T.MODULE_NAME, T.PARAM_NAME, T.SHOW_NAME, T.REL_SYMBOLS, T.GREEN_VALUE, T.YELLOW_VALUE, T.RED_VALUE, T.UNIT, T.SCPOE FROM TB_THRESHOLD_SETTING T WHERE T.PARAM_NAME = ?";
		try {
			pstmt = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
			pstmt.setString(1, "CSZJFX");
			rs = pstmt.executeQuery();
		    while(rs.next()){
		    	System.out.println("shihuan= " + rs.getString(1) + " -- " + rs.getString("MODULE_NAME"));
		    }
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return rs;
    }
    
    public void closeDb(){
    	if(rs != null){   //关闭记录集
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		if(pstmt != null){   //关闭声明
			try {
				pstmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		if(conn != null){   ////关闭连接
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
    }
    
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		OperatorDb odb = new OperatorDb();
		odb.getRs();
		odb.closeDb();
	}

}
分享到:
评论

相关推荐

    commons-dbcp-1.4.jar和commons-pool-1.5.6.jar

    `commons-pool-1.5.6.jar` 提供了一套通用的对象池服务,DBCP利用它来管理数据库连接对象。对象池技术可以有效地复用对象,减少创建和销毁对象的开销。在DBCP中,Commons Pool主要负责以下任务: 1. **...

    commons-dbcp-1.4和commons-pool-1.6驱动包下载(亲测可用)

    Apache Commons DBCP 1.4 和 Apache Commons Pool 1.6 是两个在Java应用程序中广泛使用的开源库,主要用于数据库连接池的管理。这两个库在处理大量并发数据库访问时能够提高性能并优化资源利用。 Apache Commons ...

    commons-pool-1.3.jar 和commons-dbcp-1.2.2.jar

    标题中的"commons-pool-1.3.jar"和"commons-dbcp-1.2.2.jar"是两个在Java开发中常用的开源库,主要用于数据库连接池管理。它们都是Apache Commons项目的一部分,旨在提高数据库访问效率,减少数据库资源的消耗。 ...

    commons-dbcp2-2.9.0-bin.zip

    DBCP的工作原理是,程序首先会初始化相应的数据库连接池,以供程序访问,当某个操作需要访问数据库时,程序会首先在连接池中取得空闲连接,如没有空闲连接在创建,用完之后归还连接池,这样达到了连接的重利用,不用...

    commons-dbcp-1.2.1.jar + commons-pool-1.4.jar + commons-collections-3.2.jar

    `commons-pool-1.4.jar` 是Apache Commons项目中的对象池库,它是DBCP依赖的基础,用于创建和管理对象池,包括数据库连接池。DBCP利用了这个库的功能来管理其内部的数据库连接。Apache Commons Pool提供了基础框架...

    commons-dbcp-1.4、commons-pool-1.5.6 jar包

    Apache Commons DBCP 1.4 和 Commons Pool 1.5.6 是两个在Java开发中广泛使用的开源库,主要用于数据库连接池管理。这两个jar包是处理数据库连接管理和资源优化的关键组件,尤其在大型Web应用和服务中,它们扮演着至...

    dbcp连接池所需jar(commons-collections-3.1.jar,commons-dbcp-1.2.jar,commons-pool-1.6.)

    3. `commons-pool-1.6.jar`:Apache Commons Pool是通用的对象池服务,它是DBCP连接池依赖的基础。DBCP利用了Pool库来实现对象(这里是数据库连接)的池化管理,包括创建、分配、回收和销毁连接等操作。 使用DBCP...

    commons-dbcp-1.4.jar依赖包

    "DBCP(DataBase Connection Pool)数据库连接池,是java数据库连接池的一种" 这段描述阐明了DBCP的基本概念。数据库连接池在Java应用中是一个关键组件,它提供了一种有效管理数据库连接的方法。通过预先创建并维护...

    commons-dbcp-1.2.2.jar &commons-pool-1.3.jar

    总结来说,`commons-dbcp`和`commons-pool`是Java开发中常用的数据库连接池实现,它们通过池化技术优化了数据库连接的管理,提高了系统效率。在Tomcat服务器和Struts框架中,正确配置DataSource能够保证Web应用稳定...

    commons-dbcp-1.4&&commons-pool-1.3.jar

    标题中的"commons-dbcp-1.4&&commons-pool-1.3.jar"指的是Apache Commons的两个重要组件:DBCP(Database Connection Pool)1.4版本和Pool 1.3版本。这两个组件在Java Web开发中扮演着关键角色,尤其在数据库连接...

    commons-collections.jar、commons-pool.jar、commons-dbcp-1.2.1.jar

    DBCP是一个基于连接池的数据库连接管理库,它依赖于`commons-pool.jar`和`commons-dbcp.jar`(包含了基本的数据库连接管理功能)。DBCP为应用程序提供了数据库连接的复用,减少了创建和关闭数据库连接的次数,从而...

    commons-collections-3.1.jar;commons-dbcp-1.2.1.jar;commons-pool-1.2.jar

    标题中的三个文件——"commons-collections-3.1.jar","commons-dbcp-1.2.1.jar",和"commons-pool-1.2.jar",是Apache Commons项目的一部分,它们在Java应用程序中扮演着重要角色。Apache Commons是一个为Java开发...

    commons-dbcp-1.2.2.jar和commons-pool-1.3.jar包

    在实际应用中,开发人员通常会将这两个库一起使用,通过DBCP来管理和分配数据库连接,而Commons Pool则作为底层的连接池实现。在配置DBCP时,需要指定使用哪个数据库驱动,并提供数据库连接的URL、用户名和密码等...

    jdbc用到的jar包(commons-collections-3.1.jar、commons-dbcp-1.2.2.jar、commons-pool.jar)

    在你提供的标题和描述中提到了三个关键的jar包:`commons-collections-3.1.jar`、`commons-dbcp-1.2.2.jar`和`commons-pool.jar`,这些正是在使用JDBC时常见的辅助库。 1. **Apache Commons Collections** (`...

    commons-dbcp-1.2.1.jar commons-pool-1.3.jar struts-legacy.jar

    这三者组合在一起,可能表示一个使用Struts 1.x作为Web框架,并且依赖Apache Commons DBCP进行数据库连接池管理,以及Apache Commons Pool进行通用对象池化的项目。然而,由于版本较旧,这些组件可能存在安全漏洞和...

    commons-dbcp-2-2.50+commons-pool2-2.6.0+commons-logging-1.2

    标题 "commons-dbcp-2-2.50+commons-pool2-2.6.0+commons-logging-1.2" 涉及到的是Java开发中的几个关键组件,它们是Apache Commons项目的一部分,主要用于数据库连接管理和日志记录。Apache Commons是一个包含多个...

    commons-collections-3.2.jar+commons-dbcp-1.2.1.jar+commons-pool-1.3.jar

    这些文件是Apache Commons项目中的三个重要组件:Commons Collections、Commons DBCP(数据库连接池)和Commons Pool。Apache Commons是Java编程语言中一个非常重要的库集合,提供了大量实用工具类和算法,帮助...

    commons-dbcp2-2.7.0-bin.zip

    Apache Commons DBCP2是Apache软件基金会开发的一个数据库连接池组件,版本号为2.7.0。这个组件主要用于管理数据库连接,提高数据库操作的效率和性能,是Java应用程序中的重要工具。在Java环境中,频繁地打开和关闭...

    commons-dbcp jar包

    Apache Commons DBCP(Database Connection Pool)是Apache软件基金会的一个项目,它提供了一个数据库连接池实现。数据库连接池在多线程、高并发的应用环境下特别有用,因为它可以减少创建和销毁数据库连接的开销。...

    commons-dbcp.jar.rar

    Apache Commons DBCP(Database Connection Pool)是Java世界中广泛使用的数据库连接池组件,它为应用程序提供了高效的数据库连接管理。在Java应用开发中,数据库连接池是必不可少的组件,它优化了数据库资源的分配...

Global site tag (gtag.js) - Google Analytics