首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

hibernate与c三p0

2013-11-08 
hibernate与c3p0只因为c3p0 跟hibernate 有着说不清道不明的关系使得 新手对这一大堆属性很是陌生,再加上

hibernate与c3p0

只因为c3p0 跟hibernate 有着说不清道不明的关系使得 新手对这一大堆属性很是陌生,再加上网络 互相抄袭的 泛滥(笔者对此深恶痛疾) 出现了好多不负责任的写法,现将正确的配置 及属性 记录如下。(摘自c3p0官方网站)

如果自己使用c3p0的连接池 其配置属性如下:

acquireIncrement :2?? (当连接池中的连接用完时,C3P0一次性创建新连接的数目)

idleConnectionTestPeriod:5 (隔多少秒检查所有连接池中的空闲连接,默认为0表示不检查;)

initialPoolSize:3?? (初始化时创建的连接数,应在minPoolSize与maxPoolSize之间取值。默认为3)

maxIdleTime:?7200? (最大空闲时间,超过空闲时间的连接将被丢弃。为0或负数则永不丢弃。默认为0)

maxPoolSize:10???????? (连接池中保留的最大连接数。默认为15)

maxStatements:???100???? (JDBC的标准参数,用以控制数据源内加载的PreparedStatement数量。但由于预缓存的Statement属于单个Connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素,如果maxStatements与?maxStatementsPerConnection均为0,则缓存被关闭。默认为0;?
maxStatementsPerConnection:连接池内单个连接所拥有的最大缓存Statement数。默认为0;?
numHelperThreads:C3P0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能,通过多线程实现多个操作同时被执行。默认为3;)

minPoolSize:1 (最小连接数)

testConnectionsOnCheckout?:?false (因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable?
等方法来提升连接测试的性能。默认为false;)

checkoutTimeout:5000??? (当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒,默认为0)

?

如果使用sessionFactory的property属性 来配置 c3p0的话 属性名对应如下:

hibernate.c3p0.acquire_increment

hibernate.c3p0.idle_test_period

第三个initialPoolSize 不能在这里配置,如果需要可以通过c3p0自己的配置文件进行配置。

hibernate.c3p0.timeout

hibernate.c3p0.max_size

hibernate.c3p0.max_statements

hibernate.c3p0.min_size

hibernate.c3p0.validate (hibernate 2.x only!)

?

热点排行