首页 > 代码库 > c3p0写连接池 Demo

c3p0写连接池 Demo

1、导包

  

2、配置文件:名称必须为:c3p0-config.xml,且必须放在src根目录下

 1 <c3p0-config> 2     <!--  默认配置,有且仅可出现一次 ,如果没有指定则使用这个配置 --> 3     <default-config> 4         <!-- 连接超时时间 30秒 --> 5         <property name="checkoutTimeout">30000</property> 6         <!-- 每30秒检查一次空闲时间 --> 7         <property name="idleConnectionTestPeriod">30</property> 8         <!-- 初始化池大小 --> 9         <property name="initialPoolSize">10</property>10         <!-- 最多的connection的空闲时间 -->11         <property name="maxIdleTime">30</property>12         <!-- 池中最大连接数 -->13         <property name="maxPoolSize">100</property>14         <!-- 池中最小连接数 -->15         <property name="minPoolSize">10</property>16         <!-- 批处理的语句 -->17         <property name="maxStatements">50</property>18         <!-- 每次增长几个连接 -->19         <property name="acquireIncrement">3</property>        20         21         <property name="driverClass">com.mysql.jdbc.Driver</property>22         <property name="jdbcUrl">23             <![CDATA[jdbc:mysql:///jdbcdb?useUnicode=true&characterEncoding=UTF-8]]>24         </property>25         <property name="user">root</property>26         <property name="password">mysql</property>    27         28     </default-config> 29     <!-- 命名的配置 -->30     <named-config name="MyDb">31         <property name="driverClass">com.mysql.jdbc.Driver</property>32         <property name="jdbcUrl">33             <![CDATA[jdbc:mysql://localhost/bookstore]]>34         </property>35         <property name="user">root</property>36         <property name="password">mysql</property>37         <property name="acquireIncrement">5</property><!-- 如果池中数据连接不够时一次增长多少个 -->38         <property name="initialPoolSize">100</property>39         <property name="minPoolSize">50</property>40         <property name="maxPoolSize">1000</property>41         <property name="maxStatements">0</property>42         <property name="maxStatementsPerConnection">5</property> <!-- he‘s important, but there‘s only one of him -->43     </named-config>44 </c3p0-config> 45 46 c3p0-config.xml

 

  其中named-config不是必须的,是根据需要进行配置,可以配置oracle等数据库,在后面会说明,可能用到,也可能用不到。

 

3、获取DataSource工厂类

  

 1 private static DataSource ds; 2     private DataSourceUtils(){} 3     static{ 4         ds=new  ComboPooledDataSource();//默认读取c3p0中默认配置 5         //new ComboPooledDataSource("MyDb");//读取c3p0配置在的named-config中的配置 6     } 7      8     public static DataSource getDataSource() 9     {10         return ds;11     }

 

 

 

 

这里的ComboPooledDataSource("MyDb");就是读取named—config中的配置,而不是去读取默认的配置创建数据源

 

c3p0写连接池 Demo