DBCP数据库连接池的使用
两个dbcp使用的架包:
commons-dbcp-1.4.jar 依赖于commons-pool-1.5.5.jar
commons-pool-1.5.5.jar
DBCP数据库连接池的两种实现方式
TestDBCP
package com.aff.connection; import java.io.File; import java.io.FileInputStream; import java.sql.Connection; import java.sql.SQLException; import java.util.Properties; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSource; import org.apache.commons.dbcp.BasicDataSourceFactory; import org.junit.Test; //测试DBCP的数据库连接池技术 //DBCP数据库连接池的两种实现方式 //BasicDataSource public class TestDBCP { // 方式一: @Test public void testGetConnection() throws SQLException { // 创建DBCP数据库连接池 BasicDataSource source = new BasicDataSource(); // 设置基本信息 source.setDriverClassName("com.mysql.jdbc.Driver"); source.setUrl("jdbc:mysql://localhost:3306/test"); source.setUsername("root"); source.setPassword("123456"); // 其他设置数据库连接池管理的相关属性 source.setInitialSize(10); source.setMaxActive(20); Connection conn = source.getConnection(); System.out.println(conn); } // 方式二:推荐 使用配置文件 @Test public void testGetConnection2() throws Exception { Properties pros = new Properties(); //获取流的两种方式 // ClassLoader.getSystemClassLoader().getResourceAsStream("dbcp.properties");//方式 一 FileInputStream is = new FileInputStream(new File("src/dbcp.properties"));//方式 二 pros.load(is);
// 创建了一个DBCP数据库连接池 DataSource source = BasicDataSourceFactory.createDataSource(pros); Connection conn = source.getConnection(); System.out.println(conn); } }
DBCP数据库连接池的配置文件
dbcp.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=123456
DBCP数据库连接池获取数据库连接
JDBCUtilsDBCP
package com.aff.util; import java.io.File; import java.io.FileInputStream; import java.sql.Connection; import java.util.Properties; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSourceFactory; //使用DBCP数据库连接池获取数据库连接 public class JDBCUtilsDBCP { private static DataSource source; static {// 使用静态代码块处理 try { Properties pros = new Properties(); // 获取流的两种方式 // ClassLoader.getSystemClassLoader().getResourceAsStream("dbcp.properties"); FileInputStream is = new FileInputStream(new File("src/dbcp.properties")); pros.load(is); // 创建一个DBCP数据库连接池 source = BasicDataSourceFactory.createDataSource(pros); } catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection() throws Exception { Connection conn = source.getConnection(); return conn; } }
测试DBCP数据库连接池获取的连接的使用
@Test public void testGetCustomerById() { Connection conn = null; try { conn = JDBCUtilsDBCP.getConnection(); Customer customer = dao.getCustomerById(conn, 20); System.out.println(customer); System.out.println("获取成功"); } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtils.closeResource(conn, null); } }
目录结构
All that work will definitely pay off