JAVA开源数据库连接池C3P0简介
来源:互联网 发布:字符串数组 strstr 编辑:程序博客网 时间:2024/05/01 14:25
先看官方对C3P0的介绍:C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展,目前在Hibernate和Spring中,均有使用。
工欲善其事必先利其器,先下相关的jar包吧,CSDN上一搜一大把,我的资源中也有。
C3P0就是一个数据库连接池,我们先看一个巨简单的使用C3P0的例子吧,访问本机Oracle的一张表:
package cn.test;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import com.mchange.v2.c3p0.ComboPooledDataSource;public class C3P0Test {public static void main(String[] args) {try {// 创建一个数据源ComboPooledDataSource cpds = new ComboPooledDataSource();// 设置数据库的相关信息cpds.setDriverClass("oracle.jdbc.driver.OracleDriver");cpds.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:ORCL");cpds.setUser("testdb");cpds.setPassword("testdb");cpds.setMaxStatements(180);cpds.setMaxPoolSize(100);Connection con = null;Statement stmt = null;ResultSet rs = null;con = cpds.getConnection();stmt = con.createStatement();rs = stmt.executeQuery("select id, name ,age, job, address from test_user ");while (rs.next()) {System.out.println("ID : " + rs.getString("id") + " , NAME : " + rs.getString("name")+" , AGE : " + rs.getInt("age") + " , JOB : " + rs.getString("job")+ " , ADDRESS : " + rs.getString("address"));}} catch (Exception e) {e.printStackTrace();}}}
最后的输出结果为:
2012-8-16 15:44:09 com.mchange.v2.log.MLog <clinit>信息: MLog clients using java 1.4+ standard logging.2012-8-16 15:44:10 com.mchange.v2.c3p0.C3P0Registry banner信息: Initializing c3p0-0.9.1 [built 16-January-2007 14:46:42; debug? true; trace: 10]2012-8-16 15:44:11 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager信息: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 2rxpor8pcvddxxgwjcsb|e4f972, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> oracle.jdbc.driver.OracleDriver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 2rxpor8pcvddxxgwjcsb|e4f972, idleConnectionTestPeriod -> 0, initialPoolSize -> 3, jdbcUrl -> jdbc:oracle:thin:@localhost:1521:ORCL, lastAcquisitionFailureDefaultUser -> null, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 100, maxStatements -> 180, maxStatementsPerConnection -> 0, minPoolSize -> 3, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]ID : 00000000000000000001 , NAME : tom , AGE : 40 , JOB : manager , ADDRESS : nyID : 00000000000000000002 , NAME : jimmy , AGE : 35 , JOB : ceo , ADDRESS : hustonID : 00000000000000000003 , NAME : tim , AGE : 33 , JOB : cfo , ADDRESS : canada
输出前部分是C3P0自己往控制台输出的一些信息。最后3行是,该表在数据库中的3条记录。
在实际应用中,C3P0可以结合应用服务器提供的JNDI服务为业务应用提供数据库连接池对象,业务中可以通过这个对象获取数据库连接。如Tomcat本身内置了一个数据库连接池,我们可以通过C3P0进行替换!
- JAVA开源数据库连接池C3P0简介
- java c3p0数据库连接池
- java开源数据库连接池C3P0配置详解
- C3P0(开源的数据库连接池)
- JAVA数据库连接池简介与使用(C3P0,Druid,JNDI ,DBCP,Proxool,BoneCP)
- Java开源数据库连接池比较(c3p0,dbcp和 proxool)
- Java开源数据库连接池比较(c3p0,dbcp和 proxool)
- Java c3p0 oracle 数据库连接池 代码实现
- Java使用c3p0建立MySQL数据库连接池
- Java常用的数据库连接池【c3p0】【dbcp】
- Java数据库连接池2——c3p0
- java 使用c3p0数据库连接池配置实例
- [数据库连接池二]Java数据库连接池--C3P0和JDNI.
- C3P0开源数据库连接池的编写源码
- C3P0开源数据库连接池的编写源码
- C3P0开源数据库连接池的编写源码
- 开源数据库连接池C3P0,DBCP的使用
- c3p0——开源数据库连接池(DataSource)
- 高效程序员的45个习惯:敏捷开发修炼之道
- magento如何使用session
- EL表达式错误attribute items does not accept any expressions
- java基础(自增、自减)
- 腾讯加入QQ群 连接代码
- JAVA开源数据库连接池C3P0简介
- poj 2352 Stars (线段树#4/树状数组)
- 将字符串的小写字母转换为大写字母
- oracle 日期字段 字符串格式不对
- linux操作系统编程——共享内存的读写(采用信号机制进行同步互斥)
- paip.若只如初见——WEB或BS开发必备基础知识
- final
- WIN7任务栏缩略图偶尔消失不见
- VirtualBox 支持多核 VPU 开启 VT设置