C3P0与DBCP的使用

(一)C3P0

C3P0是Hibernate推荐使用的连接池,可自动清理connection、Statement、ResultSet,需要依赖C3P0的jar包。

配置文件

DriverClass=com.mysql.jdbc.Driver
JdbcUrl=jdbc:mysql://127.0.0.1:3306/mydb
User=root
Password =w5566
MaxPoolSize=40
MinPoolSize=2
InitialPoolSize=10
MaxStatements=180

java实现

public Connection c3p0Conn() {
        // 加载配置文件
        Properties props = new Properties();
        String filename = "/com/awinson/cfg/c3p0.properties";
        InputStream is = this.getClass().getResourceAsStream(filename);

        try {
            props.load(is);
            // 创建连接池实例
            ComboPooledDataSource dSource = new ComboPooledDataSource();
            // 配置数据源
            dSource.setDriverClass(props.getProperty("DriverClass"));
            dSource.setJdbcUrl(props.getProperty("JdbcUrl"));
            dSource.setUser(props.getProperty("User"));
            dSource.setPassword(props.getProperty("Password"));
            dSource.setMaxPoolSize(Integer.parseInt(props.getProperty("MaxPoolSize")));
            dSource.setMinPoolSize(Integer.parseInt(props.getProperty("MinPoolSize")));
            dSource.setInitialPoolSize(Integer.parseInt(props.getProperty("InitialPoolSize")));
            dSource.setMaxStatements(Integer.parseInt(props.getProperty("MaxStatements")));
            //获取数据库连接
            Connection conn = dSource.getConnection();
            //关闭事务自动提交
            conn.setAutoCommit(false);
            return conn;
        } catch (PropertyVetoException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;

    }

(二)DBCP

DBCP是Apache基金会的开源连接池,需要依赖commons-dbcp.jar和commons-pool.jar这两个jar包。

    //创建数据源对象
    BasicDataSource ds = new BasicDataSource();
    //配置数据源
    ds.setDriver(driver);
    ds.setUrl(url);
    ds.setUsername(username);
    ds.setPassword(password);
    ds.setInitialSize(initialSize);
    ds.setMaxIdle(maxIdle);
    ds.setMinIdle(minIdle);
    //获取数据库连接
    Connection conn = ds.getConnection();

    //释放数据库连接
    conn.close();

(三)补充

(1)数据源只需创建一个,它是数据库连接的工厂。

(2)建议把数据源设置成static对象,在应用开始时初始化数据源对象,程序中需要获取数据链接的地方直接访问ds对象。

时间: 2024-11-10 03:17:28

C3P0与DBCP的使用的相关文章

c3p0、dbcp和proxool比较

现在常用的开源数据连接池主要有c3p0.dbcp和proxool三种,其中:  hibernate开发组推荐使用c3p0; spring开发组推荐使用dbcp(dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法reconnect,告诉连接被重置,这个设置可以解决); hibernate in action推荐使用c3p0和proxool; dbcp所需jar:commons-dbcp.jar.commons-pool.jarc3p0所需jar:c3p0-0.9

使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案

本文提供了对c3p0与DBCP连接池连接MySql数据库时, 8小时内无请求自动断开连接的解决方案.首先介绍一下我在项目(c3p0连接池)中遇到的问题,后面还提供了使用DBCP连接池的解决方案. 项目环境: Java Web项目框架为Spring MVC+JPA,使用c3p0连接池,发布环境为Tomcat 7 错误描述: 项目运行一段时间(大概几个小时)之后访问时会出现第一次访问报错,再次访问正常的现象,且多次出现此问题. 报错日志: [plain] view plaincopy org.spr

java攻城狮之路--复习JDBC(数据库连接池 : C3P0、DBCP)

复习数据库连接池 : C3P0.DBCP 1.数据库连接池技术的优点: •资源重用: 由于数据库连接得以重用,避免了频繁创建,释放连接引起的大量性能开销.在减少系统消耗的基础上,另一方面也增加了系统运行环境的平稳性. •更快的系统反应速度: 数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于连接池中备用.此时连接的初始化工作均已完成.对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而减少了系统的响应时间. •新的资源分配手段: 对于多应用共享同

c3p0、dbcp<转>

现在常用的开源数据连接池主要有c3p0.dbcp和proxool三种,其中: hibernate开发组推荐使用c3p0; spring开发组推荐使用dbcp(dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法reconnect,告诉连接被重置,这个设置可以解决); hibernate in action推荐使用c3p0和proxool; dbcp所需jar:commons-dbcp.jar.commons-pool.jarc3p0所需jar:c3p0-0.9.

使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方式

本文提供了对c3p0与DBCP连接池连接MySql数据库时. 8小时内无请求自己主动断开连接的解决方式.首先介绍一下我在项目(c3p0连接池)中遇到的问题,后面还提供了使用DBCP连接池的解决方式. 基本问题解决 项目环境: Java Web项目框架为Spring MVC+JPA,使用c3p0连接池,公布环境为Tomcat 7 错误描写叙述: 项目执行一段时间(大概几个小时)之后訪问时会出现第一次訪问报错,再次訪问正常的现象.且多次出现此问题. 报错日志: org.springframework

c3p0、dbcp和proxool的优缺点比较及配置

1.数据库连接池的概念 数据库连接池概述: 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个 应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正是针对这个问题提出来的. 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个:释放空闲时 间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏.这项技术能明显提高对数据库操作的性能. 数

数据库连接池c3p0和dbcp

转载:http://www.cnblogs.com/haogeBlogs/p/5856302.html 现在常用的开源数据连接池主要有c3p0.dbcp和proxool三种,其中: hibernate开发组推荐使用c3p0; spring开发组推荐使用dbcp(dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法reconnect,告诉连接被重置,这个设置可以解决); hibernate in action推荐使用c3p0和proxool; dbcp所需jar:

c3p0、dbcp、druid三大连接池对比

转: c3p0.dbcp.druid三大连接池对比 原文地址:https://www.cnblogs.com/littlelazy/p/10480552.html

Spring数据库连接池 c3p0、dbcp、spring-jdbc

在用dbcp的时候 后面加上 destroy-method="close" 销毁的方法没事 但是用 spring的jdbc就会报错 提示找不到close这个方法  这是为什么? DBCP DBCP(DataBase connection pool),数据库连接池.是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件.单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为

spring下,druid,c3p0,proxool,dbcp四个数据连接池的使用和配置

由于那天Oracle的数据连接是只能使用dbcp的数据库连接池才连接上了,所以决定试一下当下所有得数据库连接池连接orcale和mysql,先上代码 配置文件的代码 1 #=================dbcp连接池======================# 2 #Oracle数据库连接 3 #jdbc_driverClassName=oracle.jdbc.driver.OracleDriver 4 #jdbc_url=jdbc:oracle:thin:@localhost:1521: