- DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。BasicDataSource类实现了DataSource接口,单独使用dbcp需要3个包:commons-dbcp.jar、commons-pool.jar和commons-connections.jar
属性 |
描述 |
分类 |
driverClassName |
数据库驱动名称 |
必须项 |
url |
数据库地址 |
必须项 |
username |
用户名 |
必须项 |
password |
密码 |
必须项 |
maxActive |
连接池最大连接数 |
基本项(扩展) |
maxIdle |
连接池最大空闲数 |
基本项(扩展) |
minIdle |
连接池最小空闲数 |
基本项(扩展) |
maxWait |
最大等待秒数,单位为毫秒, 超过时间会报出错误信息 |
基本项(扩展) |
initialSize |
初始化连接池时连接数 |
基本项(扩展) |
defaultAutoCommit |
设置从数据源中返回的连接是否采用自动提交机制,默认值为 true |
基本项(扩展) |
defaultReadOnly |
设置数据源是否仅能执行只读操作, 默认值为 false |
基本项(扩展) |
validationQuery |
用于验证连接是否成功的查询SQL语句,SQL语句必须至少要返回一行数据, 如你可以简单地设置为:“select count(*) from user” |
基本项(扩展) |
removeAbandoned |
是否自我中断,默认是 false |
基本项(扩展) |
removeAbandonedTimeout |
超过时间限制,回收没有用(废弃)的连接 |
基本项(扩展) |
logAbandoned |
标记当连接被回收时是否打印程序的stack traces日志(默认为false,未调整) |
基本项(扩展) |
poolPreparedStatements |
开启池的prepared,默认是false,(经过测试,开启后的性能没有关闭的好) |
基本项(扩展) |
maxOpenPreparedStatements |
开启池的prepared 后的同时最大连接数 |
基本项(扩展) |
minEvictableIdleTimeMillis |
连接池中连接,在时间段内一直空闲, 被逐出连接池的时间 |
基本项(扩展) |
- 导入BasicDataSource相关依赖:
<dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> <version>1.6</version> </dependency> |
- BasicDataSource提供了close()方法关闭数据源,所以必须设定destroy-method=”close”属性, 以便Spring容器关闭时,数据源能够正常关闭
示例
<!--DBCP数据库连接池--> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc_driver}" /> <property name="url" value="${jdbc_url}" /> <property name="username" value="${jdbc_username}" /> <property name="password" value="${jdbc_password}" /> <property name="initialSize" value="${jdbc_initialSize}" /> <property name="maxActive" value="${jdbc_maxActive}" /> <property name="maxIdle" value="${jdbc_maxIdle}" /> <property name="minIdle" value="${jdbc_minIdle}" /> <property name="maxWait" value="${jdbc_maxWait}" /> </bean> |