[c3p0] 第一篇:简单认识c3p0
2015-08-28 00:13
267 查看
前言
译文是根据c3p0-0.9.5.1版本的官方文档,加上自己的理解,整理翻译而成。能力有限,译文内容如果有误或是理解有偏差,还请大家纠正!什么是c3p0
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。jar引入
把文件lib/c3p0-0.9.5.1.jar和lib/mchange-commons-java-0.2.10.jar放在程序CLASSPATH下(或者其它类加载器可以找到的地方)。就是这样了!相关文章推荐
- OC基础--对象做参数在方法间传递
- libc.so.6被误删除后的急救
- [Elasticsearch] 常用查询和操作总结
- wordpress第三天
- Tomcat
- android开发技巧——仿新版QQ锁屏下弹窗
- hdoj 2246 Interesting Housing Problem 【最大费用最大流 or KM算法】
- Jsp内置对象及EL表达式的使用
- php大力力 [030节] php设计系统后台菜单
- Mac OS 升级svn客户端
- 浅谈hibernate的sessionFactory和session
- 《C#入门经典(第6版)》读书笔记3_第三章:变量和表达式
- 浅谈hibernate的sessionFactory和session
- Spak之开发代码 _pom 配置
- 拖拽事件
- pthread_join和pthread_detach详解
- 327 亲和串【kmp】
- 移动手机组态软件UI设计思路探讨
- TextView字体颜色选择器
- 真实的数据可视化应该是这样的