数据库连接池C3P0

使用IDEA开发工具

  1. 定义
    存放数据库连接的集合(容器),容器被创建, 容器中就会申请一些连接对象
    当用户来访问的数据库的时候 从容器中取连接对象,用户用完之后 归还

  2. 使用
    1 导包 两个包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.12
    2 定义配置文件 名称 c3p0-config.xml 路径:将文件放到src目录下
    3 创建核心对象 数据库连接池对象ComboPoolDataSorce
    4 获取连接 getConnection

 public static void main(String[] args) throws SQLException {
        //  创建核心对象  数据库连接池对象ComboPoolDataSorce
        DataSource ds = new ComboPooledDataSource();
        //  获取连接  getConnection
        Connection con = ds.getConnection();
        System.out.println(con);
    }

显示结果:

四月 03, 2019 4:11:03 下午 com.mchange.v2.log.MLog 
信息: MLog clients using java 1.4+ standard logging.
四月 03, 2019 4:11:04 下午 com.mchange.v2.c3p0.C3P0Registry 
信息: Initializing c3p0-0.9.5.2 [built 08-December-2015 22:06:04 -0800; debug? true; trace: 10]
四月 03, 2019 4:11:04 下午 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource 
信息: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 3000, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, dataSourceName -> 1hge16ya11qryocc1rpbmi5|10b8d03, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, extensions -> {}, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, forceSynchronousCheckins -> false, forceUseNamedDriverClass -> false, identityToken -> 1hge16ya11qryocc1rpbmi5|10b8d03, idleConnectionTestPeriod -> 0, initialPoolSize -> 5, jdbcUrl -> jdbc:mysql://localhost:3306/user, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 10, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 3, numHelperThreads -> 3, preferredTestQuery -> null, privilegeSpawnedThreads -> false, properties -> {user=******, password=******}, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, userOverrides -> {}, usesTraditionalReflectiveProxies -> false ]
com.mchange.v2.c3p0.impl.NewProxyConnection@12656d3 [wrapping: com.mysql.jdbc.JDBC4Connection@e5602]

我的xml文件

<c3p0-config>
  <!-- 使用默认的配置读取连接池对象 -->
  <default-config>
  	<!--  连接参数 -->
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/user</property>
    <property name="user">root</property>
    <property name="password">root</property>
    
    <!-- 连接池参数 -->
    <!-- 初始化申请的链接数量-->
    <property name="initialPoolSize">5</property>
    <!-- 最大的链接数量10-->
    <property name="maxPoolSize">10</property>
    <!-- 超时的时间是3-->
    <property name="checkoutTimeout">3000</property>
  </default-config>

  <named-config name="otherc3p0"> 
    <!--  连接参数 -->
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/day25</property>
    <property name="user">root</property>
    <property name="password">root</property>
    
    <!-- 连接池参数 -->
    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">8</property>
    <property name="checkoutTimeout">1000</property>
  </named-config>
</c3p0-config>

c3p0的配置

public class Demo2c3p0 {
    public static void main(String[] args) throws SQLException {
        //获得DataSource
        DataSource ds = new ComboPooledDataSource();
        //获得连接
        for(int i=1;i<=11;i++){
            Connection con = ds.getConnection();
            System.out.println(i+" "+con);
            if(i==5){
                //归还连接池
                con.close();
            }
        }
    }

显示结果:

四月 03, 2019 4:15:16 下午 com.mchange.v2.log.MLog 
信息: MLog clients using java 1.4+ standard logging.
四月 03, 2019 4:15:17 下午 com.mchange.v2.c3p0.C3P0Registry 
信息: Initializing c3p0-0.9.5.2 [built 08-December-2015 22:06:04 -0800; debug? true; trace: 10]
四月 03, 2019 4:15:17 下午 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource 
信息: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 3000, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, dataSourceName -> 1hge16ya11qs437k1fapymk|157011e, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, extensions -> {}, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, forceSynchronousCheckins -> false, forceUseNamedDriverClass -> false, identityToken -> 1hge16ya11qs437k1fapymk|157011e, idleConnectionTestPeriod -> 0, initialPoolSize -> 5, jdbcUrl -> jdbc:mysql://localhost:3306/user, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 10, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 3, numHelperThreads -> 3, preferredTestQuery -> null, privilegeSpawnedThreads -> false, properties -> {user=******, password=******}, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, userOverrides -> {}, usesTraditionalReflectiveProxies -> false ]
1 com.mchange.v2.c3p0.impl.NewProxyConnection@800a9e [wrapping: com.mysql.jdbc.JDBC4Connection@392c27]
2 com.mchange.v2.c3p0.impl.NewProxyConnection@159be0d [wrapping: com.mysql.jdbc.JDBC4Connection@cc65ec]
3 com.mchange.v2.c3p0.impl.NewProxyConnection@e64e02 [wrapping: com.mysql.jdbc.JDBC4Connection@b66ca]
4 com.mchange.v2.c3p0.impl.NewProxyConnection@139ef5c [wrapping: com.mysql.jdbc.JDBC4Connection@91a171]
5 com.mchange.v2.c3p0.impl.NewProxyConnection@1cb2378 [wrapping: com.mysql.jdbc.JDBC4Connection@185ada3]
6 com.mchange.v2.c3p0.impl.NewProxyConnection@ebbd7d [wrapping: com.mysql.jdbc.JDBC4Connection@185ada3]
7 com.mchange.v2.c3p0.impl.NewProxyConnection@42c1ad [wrapping: com.mysql.jdbc.JDBC4Connection@b95774]
8 com.mchange.v2.c3p0.impl.NewProxyConnection@c7814f [wrapping: com.mysql.jdbc.JDBC4Connection@1fa6bfc]
9 com.mchange.v2.c3p0.impl.NewProxyConnection@67ab8f [wrapping: com.mysql.jdbc.JDBC4Connection@307811]
10 com.mchange.v2.c3p0.impl.NewProxyConnection@1845cb3 [wrapping: com.mysql.jdbc.JDBC4Connection@e21073]
11 com.mchange.v2.c3p0.impl.NewProxyConnection@126edd1 [wrapping: com.mysql.jdbc.JDBC4Connection@c76003]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值