C3P0连接池

C3P0连接池

​ C3P0跟DBCP一样,是连接池项目,关于DBCP可以看我另一篇博客:https://blog.csdn.net/qq_43203949/article/details/109299959

​ 无论是DBCP连接池还是C3P0连接池操作基本都是一样。C3P0跟DBCP一样可以硬编码也可以用配置文件设置属性,用得比较多的都是通过配置文件来设置属性。

1.相关jar包

相关jar包建议直接去maven仓库下载就可以了,https://mvnrepository.com/

  • c3p0-0.9.1.2.jar
  • c3p0-oracle-thin-extras-0.9.5.jar(选,oracle的兼容包,上面的jar包基本能解决问题。)

2.创建C3P0的两种方式

2.1硬编码(通过对象设置)

直接new一个dataSource,并设置相关参数属性,直接放回DataSource,直接用就可以了。

public static DataSource getDataSourcewithc3p0(){
    ComboPooledDataSource dataSource=null;
	try {
            dataSource = new ComboPooledDataSource();
            dataSource.setUser("root");
            dataSource.setPassword("123456");
            dataSource.setJdbcUrl(jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8");
            dataSource.setDriverClass("com.mysql.jdbc.Driver");
         	//设置连接数
            dataSource.setInitialPoolSize(30);
            dataSource.setMinPoolSize(10);
            dataSource.setMaxPoolSize(30);
           /*
           其他设置
            dataSource.setAcquireIncrement();                      
            dataSource.setMaxStatements();
            dataSource.setMaxIdleTime();
            dataSource.setIdleConnectionTestPeriod();
            dataSource.setAcquireRetryAttempts();
			*/
     	} catch (Exception e) {
         throw new RuntimeException(e);
     	}
     return dataSource;
}
2.2通过配置文件

在src目录下新建一个名叫 c3p0-config.xml 的文件,文件名固定。

​ 这里随便上网找了个模板,不过这里我要解释一下这个配置文件。其中default-config为默认配置,什么时候default-config会启用呢,那就是当named-config中没有的属性(property)会去default-config找对应的参数来补全参数。

与DBCP不同的是c3p0通过xml文件来配置。

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
   <!--默认配置-->
    <default-config>  
        <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>  
  
   <!--配置连接池mysql-->
    <named-config name="mysql">  
        <property name="driverClass">com.mysql.jdbc.Driver</property>  
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/mytest</property>  
        <property name="user">root</property>  
        <property name="password">root</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>  
    </named-config>  
    
    <!--其他配置连接池-->
    <named-config name="Oracle">  
        <property name="driverClass">com.oracle.jdbc.Driver</property>  
        <property name="jdbcUrl">jdbc:oracle://localhost:3306/mytest</property>  
        <property name="user">root</property>  
        <property name="password">root</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>  
    </named-config>  
    <!--其他-->
    
</c3p0-config>

配置文件配好后,获得对象,然后通过配置对象创建dataSource。

public static DataSource getDataSourcewithc3p0(){
    //用配置文件中哪个数据源就写哪个名字
    ComboPooledDataSource dataSource=new ComboPooledDataSource("mysql");
    return dataSource;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值