`
56858752
  • 浏览: 61220 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

dbcp连接池代码

阅读更多
连接池:PoolManager.java

package com.student.comm;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


import org.apache.commons.dbcp.ConnectionFactory;
import org.apache.commons.dbcp.DriverManagerConnectionFactory;
import org.apache.commons.dbcp.PoolableConnectionFactory;
import org.apache.commons.dbcp.PoolingDriver;
import org.apache.commons.pool.ObjectPool;
import org.apache.commons.pool.impl.GenericObjectPool;

public class PoolManager {

	private static String driver = "com.mysql.jdbc.Driver",//驱动    
			url = "jdbc:mysql://localhost:3306/student",//URL    
			Name = "root",//用户名    
			Password = "root";//密码    

	private static Class driverClass = null;
	private static ObjectPool connectionPool = null;

	public PoolManager() {
	
	}

	/**   
	 * 装配配置文件   
	 * initProperties       
	 */
	private static void loadProperties() {
		try {
			java.io.InputStream stream = new java.io.FileInputStream(
					"config.properties");
			java.util.Properties props = new java.util.Properties();
			props.load(stream);
                           //取config.properties配置文件的信息
			driver = props.getProperty("MYSQL_DRIVER");
			url = props.getProperty("MYSQL_URL");
			Name = props.getProperty("MYSQL_LOGIN_NAME");
			Password = props.getProperty("MYSQL_LOGIN_PASSWORD");

		} catch (FileNotFoundException e) {
			System.out.println("读取配置文件异常");
		} catch (IOException ie) {
			System.out.println("读取配置文件时IO异常");
		}
	}

	/**    
	 * 初始化数据源    
	 */
	private static synchronized void initDataSource() {
		if (driverClass == null) {
			try {
				driverClass = Class.forName(driver);
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
		}
	}

	/**    
	 * 连接池启动    
	 * @throws Exception    
	 */
	public static void StartPool() {
		loadProperties();
		initDataSource();
		if (connectionPool != null) {
			ShutdownPool();
		}
		try {
			connectionPool = new GenericObjectPool(null);
			ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(
					url, Name, Password);
			PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(
					connectionFactory, connectionPool, null, null, false, true);
			Class.forName("org.apache.commons.dbcp.PoolingDriver");
			PoolingDriver driver = (PoolingDriver) DriverManager
					.getDriver("jdbc:apache:commons:dbcp:");
			driver.registerPool("dbpool", connectionPool);
			System.out.println("装配连接池OK");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**    
	 * 释放连接池    
	 */
	public static void ShutdownPool() {
		try {
			PoolingDriver driver = (PoolingDriver) DriverManager
					.getDriver("jdbc:apache:commons:dbcp:");
			driver.closePool("dbpool");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	/**    
	 * 取得连接池中的连接    
	 * @return    
	 */
	public static Connection getConnection() {
		Connection conn = null;
		if (connectionPool == null)
			StartPool();
		try {
			conn = DriverManager
					.getConnection("jdbc:apache:commons:dbcp:dbpool");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}

	/**   
	 * 获取连接   
	 * getConnection   
	 * @param name   
	 * @return   
	 */
	public static Connection getConnection(String name) {
		return getConnection();
	}

	/**   
	 * 释放连接   
	 * freeConnection   
	 * @param conn   
	 */
	public static void freeConnection(Connection conn) {
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	/**   
	 * 释放连接   
	 * freeConnection   
	 * @param name   
	 * @param con   
	 */
	public static void freeConnection(String name, Connection con) {
		freeConnection(con);
	}
	
	public static void main(String[] args) {            
        try {    
            Connection conn = PoolManager.getConnection();    
            if(conn != null){    
                Statement statement = conn.createStatement();    
                ResultSet rs = statement.executeQuery("select * from article");    
                int c = rs.getMetaData().getColumnCount(); 
                while(rs.next()){                         
                    for(int i=1;i<=c;i++){    
                        System.out.print(rs.getObject(i));    
                    }    
                }    
                rs.close();    
            }    
            PoolManager.freeConnection(conn);    
        } catch (SQLException e) {              
            e.printStackTrace();    
        }    
   
    }    

}


并在当前目录下建config.properties文件。
MYSQL_DRIVER = com.mysql.jdbc.Driver

MYSQL_URL = jdbc:mysql://localhost:3306/xbj

MYSQL_LOGIN_NAME = root

MYSQL_LOGIN_PASSWORD = root

分享到:
评论

相关推荐

    DBCP连接池所有jar包

    配置好这些jar包后,你可以在Java代码或应用服务器的配置文件中设置DBCP连接池的参数,然后在需要的地方通过DataSource对象获取数据库连接。 总的来说,DBCP连接池是Java Web开发中管理数据库连接的重要工具,通过...

    利用dbcp实现数据库连接池

    DBCP(Jakarta DBCP)是Apache软件基金会提供的一个开源数据库连接池实现,它基于Jakarta Commons Pool对象池机制,提供了一种有效管理数据库连接的方式。 在Java应用程序中,频繁地创建和关闭数据库连接会消耗大量...

    DBCP连接池的jar包

    DBCP连接池的工作原理是预先创建一定数量的数据库连接,将这些连接存储在一个池中,当应用需要连接数据库时,可以从池中获取一个已存在的连接,使用完毕后再归还到池中,而不是每次操作数据库都创建新的连接。...

    dbcp连接池jar包

    在实际应用中,DBCP连接池的配置可以通过XML或者Java代码进行。例如,以下是一个基本的XML配置示例: ```xml &lt;bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"&gt; ...

    java dbcp连接池

    总的来说,Java DBCP连接池是Java应用中管理和优化数据库连接的有效工具,通过合理配置和使用,能够显著提升应用的数据库访问性能,同时降低资源消耗。在实际开发中,开发者应根据项目需求和性能要求选择合适的连接...

    DBCP连接池原理分析

    ### DBCP连接池原理分析 #### DBCP概述与版本区分 DBCP(Database Connection Pool)是由Apache组织提供的一款开源连接池实现。它能够帮助应用程序有效地管理与数据库的连接资源,通过重用预创建的数据库连接来...

    dbcp连接池jar

    DBCP(Database Connection Pool)是Apache组织提供的一种开源数据库连接池组件,主要...总的来说,DBCP连接池是Java应用程序中用于高效管理数据库连接的重要工具,通过合理的配置和使用,可以显著提升系统运行效率。

    DBCP数据库连接池jar包.zip

    DBCP(Database Connection Pool)是Apache Commons项目中的一个数据库连接池组件,主要目的是为了提高数据库连接的复用性,减少创建和销毁连接的开销,从而提升应用的性能。DBCP2是其第二个主要版本,提供了更稳定...

    dbcp连接池和配置文件

    **DBCP连接池的工作原理:** 1. **初始化**:在应用程序启动时,DBCP会预先创建一定数量的数据库连接并放入连接池。 2. **请求连接**:当程序需要与数据库交互时,它向连接池请求一个连接。连接池检查是否有空闲的...

    DBCP连接池

    在SSH(Spring、Struts和Hibernate)这样的经典企业级开发框架中,DBCP连接池是一个常用的数据库管理工具。 1. **数据库连接池概念**:数据库连接池是在应用服务器启动时创建的,它会预先建立一定数量的数据库连接...

    DBCP连接池所需jar包.rar

    在使用DBCP连接池之前,我们需要将必要的jar包添加到项目的类路径中。这些jar包通常包括以下几个核心组件: 1. `commons-dbcp.jar`:这是DBCP的主要库,包含了连接池的核心实现。这个文件提供了创建、配置和管理...

    dbcp连接池使用例子

    在这个"dbcp连接池使用例子"中,我们将深入理解DBCP的工作原理、配置方法以及如何在实际项目中集成和使用。 DBCP连接池的基本概念: 1. 数据库连接池:在应用程序启动时,预先创建并维护一定数量的数据库连接,这些...

    dbcp连接池

    **DBCP连接池详解** DBCP(Database Connection Pool)是Apache组织提供的一个开源数据库连接池组件,全称为Apache Commons DBCP。它基于Jakarta-DBCP,是Java应用程序中管理数据库连接的一种高效方式,通过复用已...

    DBCP连接池jar文件

    本压缩包包含了使用DBCP连接池所需的三个关键jar文件:`commons-dbcp-1.4.jar`、`commons-collections-3.2.1.jar`和`commons-pool-1.5.6.jar`。 1. `commons-dbcp-1.4.jar`:这是DBCP的主要库文件,提供了数据库...

    commons中的DBCP连接池jar

    标题"commons中的DBCP连接池jar"指的是Apache Commons DBCP的Java归档文件(JAR),它是Java应用程序可执行的二进制格式。这些JAR文件包括: 1. `commons-dbcp-1.4-javadoc.jar`:这个文件包含了DBCP 1.4版本的API...

    JDBC小组件 对DBCP连接池的封装

    通过这种方式,开发者只需要关注业务逻辑,无需关心数据库连接的细节,提高了代码的可读性和可维护性,同时也充分利用了DBCP连接池带来的性能优势。 总结,JDBC小组件对DBCP连接池的封装是Java数据库开发中一种有效...

    自己封装的dbcp连接池封装,可以同时连接多个数据库

    在本项目中,您分享的是一个自定义封装的DBCP连接池,它具有同时连接多个数据库的功能。这个特性对于那些需要处理多种数据库的应用来说非常有用,例如数据集成、数据迁移或多数据源分析等场景。以下是对这个封装的...

    java配置dbcp连接池(数据库连接池)示例分享

    以下是一个简单的DBCP连接池示例代码: ```java package cn.songxinqiang.samples.commonsdbcp.util; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.SQLException; import java...

    dbcp连接池包

    使用DBCP连接池时,开发者通常需要编写配置代码,例如使用XML配置文件或者在代码中直接配置。下面是一个简单的XML配置示例: ```xml &lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" ...

Global site tag (gtag.js) - Google Analytics