dbcp connection pool UsagedbcpConnection Pool,进行Database的CRUD,涉及jar包:commons-dbcp2-2.8.0.jar(Connection Pool包)、commons-pool2-2.9.0.jar(dbcpDependency该包)、commons-logging-1.2.jar(InterfaceLogging包)、mysql-connector-java-5.1.37-bin.jar(Database连接驱动)、commons-dbutils-1.7.jar(基本CRUD操作)

DbcpUtilsDatabaseConnection PoolConfiguration:

package learn.javase.dbcppool;

import org.apache.commons.dbcp2.BasicDataSource;
/**
 * 利用DBCP链接数据库
 * @author Jole
 * */
public class DbcpUtils {

	private static BasicDataSource dataSource = new BasicDataSource();
	
	static {
		//必配参数
		dataSource.setDriverClassName("com.mysql.jdbc.Driver");
		dataSource.setUrl("jdbc:mysql://localhost:3306/test");
		dataSource.setUsername("root");
		dataSource.setPassword("11111");
		
		//可配参数
		dataSource.setInitialSize(10);
		dataSource.setMaxIdle(8);
		dataSource.setMinIdle(2);
	}
	
	public static BasicDataSource getConnecton() {
		return dataSource;
	}
}

利用DbcpUtils进行Database的CRUD操作:

package learn.javase.dbcppool;

import java.sql.SQLException;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayListHandler;

/**
 * 利用DBCP数据库连接池增加、查询
 * @author Jole
 * */
public class DbcpUtilsDemo {

	private static QueryRunner qr = new QueryRunner(DbcpUtils.getConnecton());
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
//		insertData();
		findData();
	}
	
	public static void insertData() {
		String sql = "insert into my_user(u_id,u_name,u_age) values(?,?,?)";
		Object[] params = {"777777","dbcpUTils",30};
		try {
			int num = qr.update(sql, params);
			System.out.println(num);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void findData() {
		String sql = "select * from my_user";
		try {
			List<List<Object[]>> objs = qr.execute(sql, new ArrayListHandler());
			for(List<Object[]> obj : objs ) {
				for(Object ob : obj) {
					System.out.println(ob);
				}
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

除了DBCPDatabaseConnection Pool外,还有目前比较常用的c3p0、Druid等Database链接池。