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);
        }
    }

目录结构

 

posted @ 2020-04-12 11:31  林淼零  阅读(213)  评论(0编辑  收藏  举报