[关闭]
@Cesar 2015-12-28T10:44:09.000000Z 字数 3322 阅读 2102

C3p0连接池使用笔记

sql Java


目录:

  1. C3p0的简介
  2. 使用配置文件.properties配置并使用C3p0
  3. 使用xml文件配置并使用C3p0
  4. 使用Java代码配置并使用使用C3p0
  5. 使用spring配置并使用C3p0

C3p0简介

C3p0百度百科
数据库连接池百度百科

C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。


使用配置文件配置并使用C3p0

  1. c3p0.driverClass=com.mysql.jdbc.Driver
  2. c3p0.jdbcUrl=jdbc:mysql://localhost:3306/jdbc
  3. c3p0.user=root
  4. c3p0.password=java
  1. private static ComboPooledDataSource ds = new ComboPooledDataSource();
  2. public static Connection getConnection() {
  3. try {
  4. return ds.getConnection();
  5. } catch (SQLException e) {
  6. throw new RuntimeException(e);
  7. }
  8. }

使用XML文件配置并使用C3p0

  1. <c3p0-config>
  2. <default-config>
  3. <property name="user">root</property>
  4. <property name="password">java</property>
  5. <property name="driverClass">com.mysql.jdbc.Driver</property>
  6. <property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbc</property>
  7. <property name="initialPoolSize">10</property>
  8. <property name="maxIdleTime">30</property>
  9. <property name="maxPoolSize">100</property>
  10. <property name="minPoolSize">10</property>
  11. </default-config>
  12. <named-config name="myApp">
  13. <property name="user">root</property>
  14. <property name="password">java</property>
  15. <property name="driverClass">com.mysql.jdbc.Driver</property>
  16. <property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbc</property>
  17. <property name="initialPoolSize">10</property>
  18. <property name="maxIdleTime">30</property>
  19. <property name="maxPoolSize">100</property>
  20. <property name="minPoolSize">10</property>
  21. </named-config>
  22. </c3p0-config>
  1. //如果使用default-config,那么和2中的Properties一样,否则只需要:使///用一个带参数的ComboPooledDataSource构造器就可以了
  2. private static ComboPooledDataSource ds = new ComboPooledDataSource("myApp");

使用Java代码配置并使用(不推荐)

  1. package util;
  2. import java.beans.PropertyVetoException;
  3. import java.sql.Connection;
  4. import java.sql.SQLException;
  5. import com.mchange.v2.c3p0.ComboPooledDataSource;
  6. public class C3p0Manager {
  7. private static C3p0Manager c3poManager;
  8. private ComboPooledDataSource dataSource;
  9. static {
  10. c3poManager = new C3p0Manager();
  11. }
  12. public C3p0Manager() {
  13. try {
  14. dataSource = new ComboPooledDataSource();
  15. dataSource.setUser("root");
  16. dataSource.setPassword("123456");
  17. dataSource
  18. .setJdbcUrl("jdbc:mysql://127.0.0.1:3306/game?user=root&password=123456&useUnicode=true");
  19. dataSource.setDriverClass("com.mysql.jdbc.Driver");
  20. // 设置初始连接池的大小!
  21. dataSource.setInitialPoolSize(2);
  22. // 设置连接池的最小值!
  23. dataSource.setMinPoolSize(1);
  24. // 设置连接池的最大值!
  25. dataSource.setMaxPoolSize(10);
  26. // 设置连接池中的最大Statements数量!
  27. dataSource.setMaxStatements(50);
  28. // 设置连接池的最大空闲时间!
  29. dataSource.setMaxIdleTime(60);
  30. } catch (PropertyVetoException e) {
  31. throw new RuntimeException(e);
  32. }
  33. }
  34. public final static C3p0Manager getInstance() {
  35. return c3poManager;
  36. }
  37. public final Connection getConnection() {
  38. try {
  39. return dataSource.getConnection();
  40. } catch (SQLException e) {
  41. throw new RuntimeException("无法从数据源获取连接 ", e);
  42. }
  43. }
  44. }

使用spring配置并使用C3p0

  1. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
  2. destroy-method="close">
  3. <property name="driverClass" value="com.mysql.jdbc.Driver" />
  4. <property name="jdbcUrl"
  5. value="jdbc:mysql://localhost:3306/databasename?characterEncoding=utf8&amp;autoReconnect=true&amp;failOverReadOnly=false" />
  6. <property name="user" value="root" />
  7. <property name="password" value="spring" />
  8. <property name="initialPoolSize" value="1" />
  9. <property name="minPoolSize" value="1" />
  10. <property name="maxPoolSize" value="40" />
  11. <property name="maxIdleTime" value="20" />
  12. </bean>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注