数据库连接池——C3P0连接池o

1、C3P0简介

  C3P0也是开源免费的连接池!C3P0被很多人看好!

c3p0连接池

2、C3P0的使用

  C3P0连接池所需jar包:c3p0-0.9.1.2.jar、mchange-commons-0.2.1.jar、数据库驱动包mysql-connector-java-5.1.34.jar

       C3P0中池类是:ComboPooledDataSource

2.1 不用配置文件,用代码直接连接使用

    public void fun1() throws PropertyVetoException, SQLException {

       ComboPooledDataSource ds = new ComboPooledDataSource();

       ds.setJdbcUrl("jdbc:mysql://localhost:3306/mydb1");

       ds.setUser("root");

       ds.setPassword("123");

       ds.setDriverClass("com.mysql.jdbc.Driver");

      //  基本配置

       ds.setAcquireIncrement(5); // 每次的增量为5

       ds.setInitialPoolSize(20) ; //  初始化连接数

       ds.setMinPoolSize(2) ; // 最少连接数

       ds.setMaxPoolSize(50); // 最多连接数

      

       Connection con = ds.getConnection();

       System.out.println(con);

       con.close();

    }

2.2 使用配置文件连接

配置文件要求:

  1. 文件名称:必须叫c3p0-config.xml
  2. 文件位置:必须在src下

c3p0也可以指定配置文件,而且配置文件可以是properties,也可骒xml的。当然xml的高级一些了。但是c3p0的配置文件名必须为c3p0-config.xml,并且必须放在类路径下。因为配置文件的名称和位置固定,所以使用c3p0配置做连接时,不用指定路径。

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

<c3p0-config>

     <!-- 默认配置 -->

    <default-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>

    </default-config>

     <!-- 命名配置,其他连接配置,切换使用 -->

    <named-config name="oracle-config">

       <property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb2</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>

  c3p0的配置文件中可以配置多个连接信息,可以给每个配置起个名字,这样可以方便的通过配置名称来切换配置信息。上面文件中默认配置为mysql的配置,名为oracle-config的配置也是mysql的配置,呵呵。

    public void fun2() throws PropertyVetoException, SQLException {

        //不配置文件名称,因为配置文件名必须是c3p0-config.xml,使用默认配置 <default-config>

       ComboPooledDataSource ds = new ComboPooledDataSource();

       Connection con = ds.getConnection();

       System.out.println(con);

       con.close();

    }

 

    public void fun2() throws PropertyVetoException, SQLException {

       // 使用名为<oracle-config>标签下的配置。

       ComboPooledDataSource ds = new ComboPooledDataSource("orcale-config") ;

       Connection con = ds.getConnection();

       System.out.println(con);

       con.close();

    }

 

dbcp使用的是装饰者模式,而c3p0使用的是动态代理。


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值