以下的C3P0的数据库连接池除了需要以上的JDBC的驱动包,还需以下jar包:
如 c3p0-0.9.1.2.jar (0.9.1.2代表的是版本序列号)
为了方便使用,可以用其他的jar包进行辅助封装(dbUtils的jar)
如 commons-dbutils-1.3.jar (1.3代表的是版本序列号)
二、C3P0数据库连接池的封装:(java连接MySQL)
----------------不需要xml的配置文件
1 import java.beans.PropertyVetoException; 2 import java.sql.Connection; 3 import javax.sql.DataSource; 4 import com.mchange.v2.c3p0.ComboPooledDataSource; 5 6 import utils.GlobalConstant; 7 8 public class DataSourceUtils { 9 private static DataSource ds; 10 11 static { 12 /* 13 * 从配置文件读取配置信息 <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!-- 14 * 默认配置,如果没有指定则使用这个配置 --> <default-config> <property 15 * name="checkoutTimeout">30000</property> <property 16 * name="idleConnectionTestPeriod">30</property> <property 17 * name="initialPoolSize">3</property> <property 18 * name="maxIdleTime">30</property> <property 19 * name="maxPoolSize">10</property> <property 20 * name="minPoolSize">3</property> <property 21 * name="maxStatements">50</property> <property 22 * name="acquireIncrement">3</property><!-- 如果池中数据连接不够时一次增长多少个 --> 23 * <property name="driverClass">com.mysql.jdbc.Driver</property> 24 * <property name="jdbcUrl"> 25 * <![CDATA[jdbc:mysql://127.0.0.1:3306/project?useUnicode=true& 26 * characterEncoding=UTF-8]]> </property> <property 27 * name="user">root</property> <property 28 * name="password">789123</property> </default-config> </c3p0-config> 29 * 30 * ds = // 默认的读取c3p0-config.xml中默认配置 new ComboPooledDataSource(); 31 */ 32 ComboPooledDataSource cpds = null; 33 try { 34 cpds = new ComboPooledDataSource(); 35 cpds.setCheckoutTimeout(30000); 36 cpds.setIdleConnectionTestPeriod(30); 37 cpds.setInitialPoolSize(3); 38 cpds.setMaxIdleTime(30); 39 cpds.setMaxPoolSize(70); 40 cpds.setMaxStatementsPerConnection(100); 41 cpds.setMinPoolSize(3); 42 cpds.setMaxStatements(75); 43 cpds.setAcquireIncrement(3); 44 cpds.setDriverClass(GlobalConstant.CONNECTION_DRIVER); 45 cpds.setJdbcUrl(GlobalConstant.CONNECTION_URL); 46 cpds.setUser(GlobalConstant.CONNECTION_USER); 47 cpds.setPassword(GlobalConstant.CONNECTION_PASSWORD); 48 ds = cpds; 49 } catch (PropertyVetoException e) { 50 System.out.println("与MySQL数据库连接失败!"); 51 } 52 } 53 54 private DataSourceUtils() { 55 56 } 57 58 public static DataSource getDatasSource() { 59 return ds; 60 } 61 62 public static Connection getConnection() { 63 Connection con = null; 64 try { 65 con = ds.getConnection();// 每一次从ds中获取一个新的连接 66 } catch (Exception e) { 67 e.printStackTrace(); 68 } 69 return con; 70 } 71 }DataSourceUtils
如果要验证其可用性,你们可以修改下以上的用户名,密码,数据库名
之后在自己的MySQL建立自己相应的数据库即可测试。
数据库连接JDBC和数据库连接池C3P0自定义的java封装类
标签: