概述
是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar。
配置文件使用DBCP
#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc-study
username=root
password=root#<!-- 初始化连接 -->
initialSize=10#最大连接数量
maxActive=50#<!-- 最大空闲连接 -->
maxIdle=20#<!-- 最小空闲连接 -->
minIdle=5#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
maxWait=60000#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;]
#注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。
connectionProperties=useUnicode=true;characterEncoding=gbk#指定由连接池所创建的连接的自动提交(auto-commit)状态。
defaultAutoCommit=true#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。
#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
defaultTransactionIsolation=READ_UNCOMMITTED
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSourceFactory;public class Test {
public static void main(String[] args) throws Exception {Connection connection = null;PreparedStatement ps = null;try {//1、构建数据源BasicDataSourceFactory bdsf = new BasicDataSourceFactory();Properties pro = new Properties();pro.load(new FileInputStream("src/dbcpconfig.properties"));DataSource ds = bdsf.createDataSource(pro);//2、得到连接对象connection = ds.getConnection();//3、执行sql语句String sql = "select * from students";ps = connection.prepareStatement(sql);//4、获得结果、处理结果ResultSet query = ps.executeQuery();while(query.next()) {String id = query.getString("id");String name = query.getString("name");String clazz = query.getString("clazz");System.out.println(id + " " + name + " " + clazz);}}catch (Exception e) {e.printStackTrace();}finally {//直接关闭就行,dbcp帮我们包装好了ps.close();connection.close();}}
}