Java Web总结十四之二连接池

一、DBCP数据库连接池

  1、使用DBCP数据库连接池需要导入以下两个JAR包:

    1)commons-dbcp2-2.0.jar

    2)commons-pool2-2.2.jar

  2、使用DBCP数据库连接池需要dbcp.properties文件。

  3、使用代码如下:

    1)dbcp.properties文件代码:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/mydb3
username=root
password=root

    2)调用代码:

package com.gnnuit.web.demo;

import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory;

//DBCP的使用
public class Demo2 {

    public static void main(String[] args) throws Exception {
        Properties prop = new Properties();
        InputStream is = Demo2.class.getClassLoader().getResourceAsStream(
                "com/gnnuit/web/config/dbcp.properties");
        prop.load(is);
        DataSource ds = BasicDataSourceFactory.createDataSource(prop);
        long start = System.currentTimeMillis();
        for (int i = 0; i < 50000; i++) {
            Connection conn = ds.getConnection();
            if (conn != null) {
                System.out.println(i + "次连接");
            }
            conn.close();
        }
        long end = System.currentTimeMillis();
        System.out.println((end - start) + "毫秒");
    }

}

二、c3p0连接池

  1、使用c3p0连接池需要导入以下两个包:

    1)c3p0-0.9.5-pre8.jar

    2)mchange-commons-java-0.2.7.jar

  2、使用c3p0连接池需要在/WEB-INF/classes/目录下存放c3p0-config.xml文件,该类ComboPooledDataSource在创建时会自动在指定的目录下找xml文件,并加载默认设置。

  3、使用代码如下:

    1)c3p0-config.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
    <default-config>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="user">root</property>
        <property name="password">root</property>
        <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/mydb3</property>
    </default-config>
</c3p0-config>

    2)调用代码如下:

package com.gnnuit.web.demo;

import java.sql.Connection;

import com.mchange.v2.c3p0.ComboPooledDataSource;

//C3P0的用法
public class Demo4 {

    public static void main(String[] args) throws Exception {
        ComboPooledDataSource cpds = new ComboPooledDataSource();
        long start = System.currentTimeMillis();
        for (int i = 0; i < 5000; i++) {
            Connection conn = cpds.getConnection();
            if (conn != null) {
                System.out.println(i + "次连接");
            }
            conn.close();
        }
        long end = System.currentTimeMillis();
        System.out.println((end - start)/1000 + "秒");
    }

}

 

posted @ 2014-04-18 18:30  yly123  阅读(329)  评论(0编辑  收藏  举报