译文是根据c3p0-0.9.5.1版本的官方文档,加上自己的理解,整理翻译而成。能力有限,译文内容如果有误或是理解有偏差,还请大家纠正!
c3p0是一个非常好用的jar类库,根据jdbc3规范和jdbc2规范的标准扩展部分定义实现,使得传统的JDBC更适合企业级开发。在0.9.5版本中,c3p0完全支持jdbc4规范。
c3p0提供了几个有用的服务:
1、获取数据库连接的方式,由传统的基于DriverManager的JDBC驱动获取转换为新的javax.sql.DataSource模式获取。
2、连接池和PreparedStatement隐藏在DataSource后面,DataSource可以“包装”传统的驱动或者是任何不带连接池的DataSource。
该库力图得到正确的细节:
1、c3p0数据源都是Referenceable(可引用的)和Serializable(可序列化的),因此适合绑定基于JNDI的命名服务。
2、当把从连接池中取出的Connection和Statement放回连接池的时候,Statement和ResultSet将被仔细的清理,预防因懒惰采用仅仅清理Connection的资源管理策略而导致的资源耗尽的情况发生。
3、该库采用由JDBC2和3规范定义的方法(这和库作者自身的喜好有些冲突)。DataSource采用JavaBean规范编写,提供了所有必须属性和很多可选属性(包含一些非标准属性),无惨构造器。所有JDBC规范定义的内部接口都被实现(ConnectionPoolDataSource,PooledConnection,ConnectionEvent-generating Connections,etc),你可以混合使用c3p0和第三方组件(但并不是所有的c3p0特性都能很好的兼容外部ConnectionPoolDataSource实现)。
c3p0希望提供更加适合大规模“JavaEE企业级应用”的DataSource实现。如果发现bug或是修复bug,请联系官方!
c3p0最初的设计目的就是要使用简单,只需要把jar文件lib/c3p0-0.9.5.1.jar放在应用程序有效的CLASSPATH中,然后创建DataSource即可:
import com.mchange.v2.c3p0.*; ... ComboPooledDataSource cpds = new ComboPooledDataSource(); cpds.setDriverClass( "org.postgresql.Driver" ); //loads the jdbc driver cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" ); cpds.setUser("dbuser"); cpds.setPassword("dbpassword");[可选项]如果你想使用PreparedStatement池,你必须设置maxStatements和maxStatementsPerConnection两个参数(默认值都是0):
cpds.setMaxStatements( 180 );无论你想用DataSource做什么,它都会被一个用默认参数初始化过的连接池支持。你可以绑定数据源到一个JNDI服务,或者是直接使用,完全依据你的喜好。
cpds.close();
基本的使用就是这样了!剩下的都是细节问题。
c3p0-0.9.5.1需要1.6.x或以上的Java Runtime Environment。
把文件lib/c3p0-0.9.5.1.jar和lib/mchange-commons-java-0.2.10.jar放在程序CLASSPATH下(或者其它类加载器可以找到的地方)。就是这样了!
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u011506951/article/details/48037693