【JDBC】学习路径9-dbcp数据源的使用

Posted on 2022-05-25 16:30  罗芭Remoo  阅读(131)  评论(0编辑  收藏  举报

第一章:下载

要下载三个东西:commons pool、commons log、dbcp

dbcp中有些东西是依赖于commons pool 和 commons log 的。

缺一不可,否则无法正确运行使用dbcp!

commons pool下载地址:https://commons.apache.org/proper/commons-pool/download_pool.cgi

commons log下载地址:https://commons.apache.org/proper/commons-logging/download_logging.cgi

dbcp下载地址:https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi

或者直接点下面这三个直链下载就可以了。(三个文件都要下载)

点击此处直接下载commons pool文件

点击此处直接下载commons log文件

点击此处直接下载dbcp文件

 

文件结构:

有用的是:

commons-dbcp2-2.9.0.jar

commons-pool2-2.11.1.jar

commons-logging-1.2.jar

分别导入jar包即可。

 

第二章:使用dbcp数据源

import org.apache.commons.dbcp2.BasicDataSource;

import java.sql.Connection;
import java.sql.SQLException;

public class dbcp_test {
    private static final String CURL = "jdbc:mysql://localhost:3306/jdbc_01?useUnicode=true&characterEncoding=UTF8";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "88888888";
    private static BasicDataSource ds;
    static {
        ds = new BasicDataSource();
        ds.setDriverClassName("com.mysql.cj.jdbc.Driver");
        ds.setUrl(CURL);
        ds.setUsername(USERNAME);
        ds.setPassword(PASSWORD);

        //设置一开始的连接池对象数
        ds.setInitialSize(5);

        //设置最大连接数
        ds.setMaxTotal(20);

        //设置空闲链接
        ds.setMinIdle(3);
    }

    public static Connection getConnection(){
        try {
            return ds.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    //注意,这里的关闭并不会真正的关闭con,因为我们的数据源dbcp重写了connection中的close()
    //相当于归还con连接到连接池中
    public static void close(Connection con){
        try {
            con.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    
}

 

这样一来,我们新的dbcp_test完全取代JDBCUtils工具包。

下一节,我们介绍c3p0数据源,c3p0更牛逼一点哦!