c3p0数据库连接池

准备的jar包:
c3p0-0.9.2.1.jar
mchange-commons-0.2.jar
如果是Oracle数据库则还需
c3p0-oracle-thin-extras-0.9.2.1.jar
我使用的是IDEA,之前只是将jar包导入到项目中,在tomcat中一跑就报找不到类异常。后面把jar包粘贴到tomcat的lib目录下,再从lib目录下添加依赖到项目中就ok了。

  1. 首先导入jar包,这里用的是mysql数据库,所以还需要导入mysql驱动包。然后获取DataSource获取Connection。

        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        try {

            // 对池进行四大参数的配置
            dataSource.setDriverClass("com.mysql.jdbc.Driver");
            dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mydb3");
            dataSource.setUser("root");
            dataSource.setPassword("123");

            // 池配置
            dataSource.setAcquireIncrement(5);
            dataSource.setInitialPoolSize(20);
            dataSource.setMinPoolSize(2);
            dataSource.setMaxPoolSize(50);

            Connection connection = dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        }

上面是通过java代码初始化DataSource,还可以通过配置文件来初始化。但必须满足两个条件:
1. 文件名必须为c3p0-config.xml
2. 文件必须在src目录下。
同时,还可以指定命名配置元素的名称

    /**
     * 构造器的参数指定命名配置元素的名称!
     * <named-config name="oracle-config"> 
     */
    ComboPooledDataSource dataSource  = new ComboPooledDataSource("oracle-config");

    Connection con = dataSource.getConnection();
    System.out.println(con);
    con.close();

c3p0-config.xml的内容:

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>

    <!-- 这是默认配置信息 -->
    <default-config>

        <!-- 连接四大参数配置 -->
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="user">root</property>
        <property name="password">yirenjie</property>

        <!-- 池参数配置 -->
        <property name="acquireIncrement">3</property>
        <property name="initialPoolSize">10</property>
        <property name="minPoolSize">2</property>
        <property name="maxPoolSize">10</property>

    </default-config>

    <!-- 专门为oracle提供的配置信息 -->
    <named-config name="oracle-config">

        <property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb1</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="user">root</property>
        <property name="password">123</property>


        <property name="acquireIncrement">3</property>
        <property name="initialPoolSize">10</property>
        <property name="minPoolSize">2</property>
        <property name="maxPoolSize">10</property>

    </named-config>

</c3p0-config>

上面在java代码中指定之后,对应的就是oracle-config的初始化参数了。

如果同时存在配置文件和java代码初始化,则java代码会覆盖配置文件的初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值