hibernate与c3p0

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

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

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

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

initialPoolSize:3   (初始化时创建的连接数,应在minPoolSizemaxPoolSize之间取值。默认为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提交的时候都将校验其有效性。建议使用idleConnectionTestPeriodautomaticTestTable 
等方法来提升连接测试的性能。默认为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!)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值