c3p0参数解释

c3p0参数解释
properties: 类路径下提供一个c3p0.properties文件,文件的命名必须是c3p0.properties

driverclass:加载驱动(oracle.jdbc.driver.OracleDriver)

jdbcUrl:统一资源定位符(jdbc:oracle:thin:@127.0.0.1:1521:orcl)

user:数据库的用户名

password:登录数据库的密码

checkoutTimeout:配置当连接池所有连接用完时应用程序

getConnection的等待时间。为0则无限等待直至有其他连接释放或者创建新的连接,不为0则当时间到的时候如果仍没有获得连接,则会抛出SQLException。(其实就是acquireRetryAttempts*acquireRetryDelay。)

acquireIncrement: 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数

acquireRetryAttempts:连接池在获得新连接失败时重试的次数,如果小于等于0则无限重试直至连接获得成功。default : 30(建议使用)

acquireRetryDelay:连接池在获得新连接时的间隔时间。default : 1000 单位ms(建议使用)

breakAfterAcquireFailure:如果为true,则当连接获取失败时自动关闭数据源,除非重新启动应用程序。所以一般不用。

autoCommitOnClose:连接池在回收数据库连接时是否自动提交事务。如果为false,则会回滚未提交的事务,如果为true,则会自动提交事务。default : false(不建议使用)

connectionTesterClassName:连接池用来支持automaticTestTable和preferredTestQuery测试的类,必须是全类名,就像默认的那样,可以通过实现UnifiedConnectionTester接口或者继承AbstractConnectionTester来定制自己的测试方法

automaticTestTable:配置一个表名,连接池根据这个表名用自己的测试sql语句在这个空表上测试数据库连接,这个表只能由c3p0来使用,用户不能操作。default : null(不建议使用)

idleConnectionTestPeriod:每60秒检查所有连接池中的空闲连接。Default: 0

initialPoolSize:初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间.Default: 3

maxIdleTime:最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0

maxPoolSize:连接池中保留的最大连接数。Default: 15

minPoolSize:连接池中保留的最小连接数

maxStatements :JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements,属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0

maxStatementsPerConnection:定义了连接池内单个连接所拥有的最大缓存statements数。Default: 0

overrideDefaultUser:当用户调用getConnection()时使root用户成为去获取连接的用户。主要用于连接池连接非c3p0的数据源时。Default: null

overrideDefaultPassword:与overrideDefaultUser参数对应使用的一个参数。Default: null

propertyCycle:用户修改系统配置参数执行前最多等待300秒。Default: 300

breakAfterAcquireFailure :true表示pool向数据库请求连接失败后标记整个pool为block并close,就算后端数据库恢复正常也不进行重连,客户端对pool的请求都拒绝掉。false表示不会标记 pool为block,新的请求都会尝试去数据库请求connection。默认为false。因此,如果想让数据库和网络故障恢复之后,pool能继续请求正常资源必须把此项配置设为false

testConnectionOnCheckout :true表示在每次从pool内checkout连接的时候测试其有效性,这是个同步操作,因此应用端的每次数据库调用,都会先通过测试sql测试其有效性,如果连接无效,会关闭此连接并剔除出pool,并尝试从pool内取其他连接,默认为false,此特性要慎用,会造成至少多一倍的数据库调用。

testConnectionOnCheckin :true表示每次把连接checkin到pool里的时候测试其有效性,因为是个事后操作,所以是异步的,应用端不需要等待测试结果,但同样会造成至少多一倍的数据库调用。

例:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
        lazy-init="false" destroy-method="close">
        <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property>
        <property name="jdbcUrl" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"></property>
        <property name="user" value="scott"></property>
        <property name="password" value="root"></property>
        <!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数 -->
        <property name="acquireIncrement" value="5"></property>
        <!-- 初始化获取的连接数,取值应在minPoolSize与maxPoolSize之间 -->
        <property name="initialPoolSize" value="5"></property>
        <!-- 连接池中保留的最小连接数 -->
        <property name="minPoolSize" value="5"></property>
        <!-- 连接池中保留的最大连接数 -->
        <property name="maxPoolSize" value="20"></property>
        <!-- JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。
        但由于预缓存的statements属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
        如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0 -->
        <property name="maxStatements" value="100"></property>
        <!-- 获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。
        但是数据源仍有效保留,并在下次调用getConnection()的时候继续尝试获取连接。
        如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。 -->
        <property name="numHelperThreads" value="10"></property>
        <!-- 连接的最大空闲时间,如果超过这个时间,某个数据库连接还没有被使用,则会断开掉这个连接。
        如果为0,则永远不会断开连接,即回收此连接。default : 0 单位 s -->
        <property name="maxIdleTime" value="60"></property>
</bean>

参考:http://blog.csdn.net/jdfkldjlkjdl/article/details/40655421
http://blog.csdn.net/u012129031/article/details/72621288

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
c3p0是一个常用的Java数据库连接池,它可以帮助我们更好地管理数据库连接。为了正确配置c3p0,我们需要使用一个xml配置文件。 c3p0的xml配置文件包含了一些重要的配置项,下面是一些常用配置项的说明: 1. driverClass: 需要连接的数据库的驱动类名。 2. jdbcUrl: 数据库的连接信息,包括数据库地址、端口号、数据库名称等。 3. user: 连接数据库所需的用户名。 4. password: 连接数据库所需的密码。 5. initialPoolSize: 连接池初始连接数。 6. maxPoolSize: 连接池最大连接数。 7. minPoolSize: 连接池最小连接数。 8. acquireIncrement: 连接池自动增加连接数的步长。 9. maxIdleTime: 连接的最大空闲时间。 10. maxStatements: 连接池支持的最大预编译语句数。 11. idleConnectionTestPeriod: 连接池检测空闲连接的间隔时间。 12. preferredTestQuery: 连接池测试连接的数据库查询语句。 13. cacheState: 是否缓存PreparedStatement。 在配置文件中,我们可以通过设置这些参数来满足应用程序对数据库连接的需求。配置文件也可以设置其他的参数,以便更好地满足实际需要。 使用c3p0配置文件xml,我们可以轻松地管理数据库连接池,提高应用程序的性能和可靠性。通过适当地调整配置参数,我们可以根据应用程序的需求,灵活地控制连接池的大小和连接的获取和释放。这样就可以避免连接池中连接资源的浪费和数据库连接过多导致的性能下降。同时,c3p0还提供了一些监控和优化工具,可以帮助我们更好地管理数据库连接。 总之,c3p0配置文件xml是配置c3p0数据库连接池的一种方式,通过正确配置可以实现更好地连接管理,提高应用程序的性能和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值