连接池 DBCP 参数意义和设置

Apache的数据库连接池 DBCP 参数意义和设置网上已经有很多,这里收集并结合项目的情况,整理总结一下方便以后参考和不用记那么多东西,懒人计划,^=^,,内容如下:

更多见官网: http://commons.apache.org/proper/commons-dbcp/configuration.html


池配置属性:指定的内容

initialSize
: 
池启动时创建的连接数量

maxActive
同一时间可以从池分配的最多连接数量。设置为0时表示无限制。

maxIdle
池里不会被释放的最多空闲连接数量。设置为0时表示无限制。

maxOpenPreparedStatements
同一时间能够从语句池里分配的已备语句的最大数量。设置为0时表示无限制。

maxWait [官网为:maxWaitMillis,但实际是用前面的]:
在抛出异常之前,池等待连接被回收的最长时间(当没有可用连接时)。设置为-1表示无限等待。

minEvictableIdleTimeMillis
连接保持空闲而不被驱逐的最长时间。

minIdle
在不新建连接的条件下,池中保持空闲的最少连接数。

poolPreparedStatements
是否对已备语句进行池管理(布尔值)。

timeBetweenEvictionRunsMillis: 
毫秒秒检查一次连接池中空闲的连接,

minEvictableIdleTimeMillis
把空闲时间超过minEvictableIdleTimeMillis毫秒的连接断开, 直到连接池中的连接数到minIdle为止 连接池中连接可空闲的时间,毫秒 

defaultAutoCommit
默认的SQL语句自动提交状态(开启或关闭)设置由连接池本身设置(false由连接池定),不设置该值setAutoCommit方法不被调用;

validationQuery
要求必需是个SELECT类型的SQL语句,至少返回一行,由于它会在所有应用的SQL语句执行之前运行一次,所以原则上应该对数据库服务器带来的压力越小越好,推荐使用“SELECT 1”

testOnBorrow
表示从连接池中获取连接前是否运行validationQuery,true=运行[默认],false=不运行;

testOnReturn
表示将连接归还连接池前是否运行validationQuery,true=运行,false=不运行[默认];


应该注意各个参数的设置情况,应该根据具体的项目情况,以及需要的性能等情况而定,


比如常用参数设置如下:


         
	
        
        
        
	
	
	
	
	  
	
	
	
		SELECT 1
	
	
		true
	
	
		false
	





你可能感兴趣的:(Java,管理者/开发者)