使用C3P0管理数据库连接,继续我们的JDBC封装

c3p0数据库连接池实战
本文通过实战演示了如何使用c3p0数据库连接池,并对比了使用前后查询性能的变化。实测表明,c3p0能显著提高数据库查询效率。

关于数据库连接池以前只会在Spring,hibernate中集成使用,在这里重新对c3p0认识一番

推荐一篇文章颇为强悍 http://my.oschina.net/lyzg/blog/55133

我就是通过这篇文章学习的,没办法英文的咱看不懂啊

其实默认的配置已经非常好了,要不怎么能成为默认呢,哈哈!

c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://127.0.0.1:3306/helloworld
c3p0.user=
c3p0.password=

以上为最简配置,默认名为c3p0.properties

使用c3p0 我们只需要更改获取数据库连接的代码就可以了

private static ComboPooledDataSource dataSource = new ComboPooledDataSource();


private  Connection getConnection() throws DBException{
            try {
                return dataSource.getConnection();
            } catch (SQLException e) {
                throw new DBException("数据库连接出错", e);
            }
    }

如此简单。。。。为了看到c3p0的效果,进行了如下的测试

DBC3P0Manager dm = DBC3P0Manager.getInstance();
        for(int i = 0;i < 100;i++){
            long beginTime = System.currentTimeMillis();
            dm.execQuery("select * from teacher");            
            long endTime = System.currentTimeMillis();
            System.out.println("第" + i+ "次 " + (endTime-beginTime));
        }
        
        DBManager m = DBManager.getInstance();
        for(int i = 0;i < 100;i++){
            long beginTime = System.currentTimeMillis();
            m.execQuery("select * from teacher");            
            long endTime = System.currentTimeMillis();
            System.out.println("第" + i+ "次 " + (endTime-beginTime));
        }

发现c3p0的第一次查询很慢大约1秒左右,而往后的次数也就3ms左右,而没有使用c3p0的每次都要超过10ms。

 

转载于:https://www.cnblogs.com/xviubu/p/3476934.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值