`
Wanghuidong
  • 浏览: 43817 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
文章分类
社区版块
存档分类
最新评论
  • openFox: 确实,以前只知道编码是个名词,在项目中编码统一就可以了,原来是 ...
    java编码解惑
  • tianzizhi: 前段时间我也看了许多这方面的东西,基本理解了,拿楼主的总结再复 ...
    java编码解惑

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!)

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics