try wid exception context dede cat ble comm
之前已经讲过 dbcp 可以用于数据库连接池进行管理。另一种技术 c3p0 也可以用于数据库连接池管理,其中 Spring 等框架都是基于 c3p0 技术进行数据库连接池管理的。
使用之前需要引入 c3p0-0.9.5.2.jar 和 mchange-commons-java-0.2.11.jar 包,主要的类是 ComboPooledDataSource,也有两种方式进行设置。一种是代码中进行设置,一种是在配置文件中设置。主要区别就是这种方式只有一个主要类 ComboPooledDataSource。
他们之间可能方法名有所不同,但是功能是一样的。
1)在代码中进行配置,代码如下
- ComboPooledDataSource dataSource =new ComboPooledDataSource();
- try {
- dataSource.setJdbcUrl("jdbc:mysql:///mydb?useSSL=true");
- dataSource.setDriverClass("com.mysql.jdbc.Driver");
- dataSource.setUser("root");
- dataSource.setPassword("123456");
- dataSource.setMaxIdleTime(600);
- dataSource.setMaxPoolSize(100);
- dataSource.setInitialPoolSize(5);
- Connection conn = dataSource.getConnection();
- String sql ="select * from user where id=?";
- QueryRunner qr =new QueryRunner();
- User user = qr.query(conn, sql,newBeanHandler(User.class),2);
- System.out.println(user);
- dataSource.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
2) 在配置文件中进行设置
注意:配置文件命名是 c3p0-config.xml。系统默认回去 CLASSPATH、web-INF/classes 文件夹中搜索配置文件,所以把他放在 src 目录下即可。
- ComboPooledDataSource dataSource =newComboPooledDataSource("mysql_config"); //使用指定配置名的配置
- try {
- Connection conn = dataSource.getConnection();
- String sql ="select * from user where id=?";
- QueryRunner qr =new QueryRunner();
- User user = qr.query(conn, sql,newBeanHandler(User.class),2);
- System.out.println(user);
- dataSource.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
配置文件中可以进行设置的参数如下:
acquireIncrementacquireRetryAttemptsacquireRetryDelayautoCommitOnCloseautomaticTestTablebreakAfterAcquireFailurecheckoutTimeoutconnectionCustomizerClassNameconnectionTesterClassNamecontextClassLoaderSourcedataSourceNamedebugUnreturnedConnectionStackTracesdriverClassextensions | factoryClassLocationforceIgnoreUnresolvedTransactionsforceSynchronousCheckinsforceUseNamedDriverClassidleConnectionTestPeriodinitialPoolSizejdbcUrlmaxAdministrativeTaskTimemaxConnectionAgemaxIdleTimemaxIdleTimeExcessConnectionsmaxPoolSizemaxStatementsmaxStatementsPerConnection | minPoolSizenumHelperThreadsoverrideDefaultUseroverrideDefaultPasswordpasswordpreferredTestQueryprivilegeSpawnedThreadspropertyCyclestatementCacheNumDeferredCloseThreadstestConnectionOnCheckintestConnectionOnCheckoutunreturnedConnectionTimeoutuser |
配置文件样例如下
- <default-config>"checkoutTimeout">3000"idleConnectionTestPeriod">30"initialPoolSize">5"maxIdleTime">60"maxPoolSize">100"minPoolSize">5"test-user">"maxPoolSize">10"minPoolSize">1"maxStatements">0</default-config>"mysql_config">"initialPoolSize">5"jdbcUrl">jdbc:mysql://localhost:3306/mydb?useSSL=true</property>"driverClass">com.mysql.jdbc.Driver"maxPoolSize">100"initialPoolSize">5"maxIdleTime">60"password">123456"user">root
c3p0 数据库连接池管理
来源: http://www.bubuko.com/infodetail-2015507.html