C3P0(开源的数据库连接池)

1 . C3P0:开源的数据库连接池。实现了数据源和JNDI的绑定,支持JDBC3和JDBC2的规范。
2 . 目前数据框架使用这些数据源配置 (Hibernate5,SpringData) 动态代理模式
3 . JNDI:Java Naming Directory Interface: java命名目录接口规范。
4 . 目的:用户只关注结果,过程不关心(例如:驱动是什么,地址什么?。。。)
5 . DBCP和C3P0区别:

DBCP没有自动回收空闲连接的功能。

C3P0能自动回收空闲连接
6 . c3p0使用步骤:
6.1.添加jar(mysql驱动, c3p0.jar)
6.2.编写配置文件(固定死的,位置和名称已经定好的) src根目录,c3p0-config.xml
6.3.获取数据源得到连接
7 .工具类


import java.sql.Connection;
import java.sql.SQLException;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3P0Utils {

    private static  ComboPooledDataSource ds =new   ComboPooledDataSource();


    public   static Connection getConnection() {
        try {
            return  ds.getConnection();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return  null;
    }

}

8 .测试类

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import org.junit.Test;


public class TestC3P0 {
    @Test
    public void test01() {
        try {
            Connection connection = C3P0Utils.getConnection();
            System.out.println(connection);
            PreparedStatement preparedStatement = connection.prepareStatement("select * from user");
            ResultSet resultSet = preparedStatement.executeQuery();
            while (resultSet.next()) {
                System.out.println("=name="+resultSet.getString("name"));   
            }
        } catch (Exception e) {
            // TODO: handle exception
        }

    }
}

9.c3p0-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
    <default-config>
        <!-- 首字母都是小写 -->
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost/1713_transaction</property>
        <property name="user">root</property>
        <property name="password">123</property>
        <property name="checkoutTimeout">30000</property>
        <property name="idleConnectionTestPeriod">30</property>
        <property name="initialPoolSize">10</property>
        <property name="maxIdleTime">30</property>
        <property name="maxPoolSize">100</property>
        <property name="minPoolSize">10</property>
        <property name="maxStatements">200</property>
    </default-config>
</c3p0-config>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值