Java 框架数据库连接池比较(c3p0,dbcp 和proxool) 现在常用的开源数据连接池主要有c3p0,dbcp和proxool三种,其中: ¨ hibernate开发组推荐使用c3p0; ¨ spring开发组推荐使用dbcp (dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法reconnect ,告诉连接被重置,这个设置可以解决); ¨ hibernate in action推荐使用c3p0和proxool; 下面具体就每种连接池的调研结果进行说明: 1. Apache-DBCP Ø BasicDataSource 相 关的参 数说明 dataSource: 要连接的 datasource (通 常我 们 不 会 定 义 在 server.xml) defaultAutoCommit: 对 于 事 务 是否 autoCommit, 默 认 值 为 true defaultReadOnly: 对 于 数据库是否 只 能 读 取 , 默 认 值 为 false driverClassName:连接数据库所 用的 JDBC Driver Class, maxActive: 可以从 对 象 池中取 出 的对 象 最 大 个数,为 0则 表 示 没 有限 制 ,默 认 为 8 maxIdle: 最 大 等 待 连接中的数量 ,设 0 为 没 有限 制 (对 象 池中对 象 最 大 个数) minIdle:对 象 池中对 象 最 小 个数 maxWait: 最 大 等 待 秒 数, 单 位 为 ms, 超 过 时 间 会 丟 出 错 误 信 息 password: 登 陆 数据库所 用的密 码 url: 连接数据库的 URL username: 登 陆 数据库所 用的帐号 validationQuery: 验证连接是否 成功, SQL SELECT 指令至少要返回一行 removeAbandoned: 是否 自我 中断, 默 认 是 false removeAbandonedTimeout: 几秒 后会 自我 中断, removeAbandoned 必须为 true logAbandoned: 是否 记录中断事 件, 默 认 为 false minEvictableIdleTimeMillis:大 于 0 ,进行连接空闲时 间 判断,或为 0,对 空闲的连接不 进行验证;默 认 30分钟 timeBetweenEvictionRunsMillis:失效检查线 程 运 行时 间 间 隔 ,如 果小 于 等 于 0,不 会 启动 检查线 程 ,默 认 -1 testOnBorrow:取 得 对 象 时 是否 进行验证,检查对 象 是否 有效,默 认 为 false testOnReturn:返回对 象 时 是否 进行验证,检查对 象 是否 有效,默 认 为 false testWhileIdle:空闲时 是否 进行验证,检查对 象 是否 有效,默 认 为 false Ø...