DBCP连接池

DBCP是一个开源的连接池,是Apache Common成员之一,在企业开发中比较常见,tomcat内置的连接池。

一、导入jar包

DBCP连接池

二、配置文件

1)配置文件名称:*.properties

2)配置文件位置:任意,建议src(classpath/类路径)

3)配置文件内容:properties不能编写中文,不支持在STS中修改,必须使用记事本修改内容,否则中文注释乱码

DBCP连接池

三、编写工具类

package cn.itheima.jdbc.utils;

import java.io.InputStream;
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;

/*编写工具类
 * */
public class DBCPUtils {
    private static DataSource dataSource;
    static{
        try {
            //1.加载properties文件输入流
            InputStream is = DBCPUtils.class.getClassLoader().getSystemResourceAsStream("db.properties");
            //2.加载输入流
            Properties props = new Properties();
            props.load(is);
            //3.创建数据源
            dataSource = BasicDataSourceFactory.createDataSource(props);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    public static DataSource getDataSource(){
        return dataSource;
    }
    
    public static Connection getConnection(){
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}

四、编写测试类

package Test;

import java.sql.Connection;
import java.sql.PreparedStatement;

import org.junit.Test;

import cn.itheima.jdbc.utils.DBCPUtils;

public class TestDBCP {
    @Test
    public void testUpdateUserById(){
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            conn = DBCPUtils.getConnection();
            String sql = "update tb1_user set upassword=? where uid=?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1,"啦啦啦");
            pstmt.setInt(2,7);
            int rows = pstmt.executeUpdate();
            if(rows>0){
                System.out.println("更新成功!");
            }else{
                System.out.println("更新失败!");
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}