JDBC连接池

Posted 怒上王者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC连接池相关的知识,希望对你有一定的参考价值。

DBCP的jar包官网下载
Pool的jar包官网下载
Collections的jar包官网下载
Logging的jar包官网下载
mysql-connecor的jar包官网下载

package utils;

import com.mysql.cj.jdbc.Driver;
import org.apache.commons.dbcp2.BasicDataSource;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *   项目描述: 编写数据库DBCP连接池的工具类代码
 */

public class DBCPUtils {

    // 1。定义常量。包含注册驱动,定义连接数据库的URL,以及数据库连接的用户名和密码
    public static final String DRIVER = "com.mysql.cj.jdbc.Driver";
    public static final String DATABASE = "lianxi01";//需要修改成自己的数据库
    public static final String URL = "jdbc:mysql://localhost:3306/" + DATABASE + "?characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
    public static final String USER ="root";
    public static final String PASSWORD = "316426";//修改成自己的密码 
    // 2。创建DBCP的连接池(public static层级)。使用DataSource接口的实现类BasicDataSource
    public static BasicDataSource datasource = new BasicDataSource();
    // 3。创建静态代码块,对连接池进行配置
    static {

        datasource.setDriverClassName(DRIVER);
        datasource.setUrl(URL);
        datasource.setUsername(USER);
        datasource.setPassword(PASSWORD);

    }
    // 3。从连接池中获取连接
    public static Connection getConnection() throws SQLException {
        Connection connection = datasource.getConnection();
        return connection;
    }
    // 4。关闭连接,释放资源。这里的"关闭"指的是将连接归还给数据池 --- executeUpdate方法的关闭
    public static void close(Connection con, Statement statement) throws SQLException {

        if(null != con && null != statement){
            statement.close();
            con.close();
        }
    }
    // close(Connection con, Statement statement)方法重载 --- executeQuery方法的关闭
    public static void close(Connection con, Statement statement, ResultSet resultSet) throws SQLException {

        if(null != con && null != statement && null != resultSet){

            resultSet.close();
            statement.close();
            con.close();
        }
    }
}

以上是关于JDBC连接池的主要内容,如果未能解决你的问题,请参考以下文章

JDBC自定义连接池

数据库连接池的Java连接池

JDBC 连接池错误

MySQL 和 JDBC 连接池:未关闭的语句

用Java手动封装JDBC连接池

哪个更好:JDBC 连接池,还是使用 SIngleton 类进行 JDBC 连接?