jdbc的Druid德鲁伊连接池工具类:实现数据库的连接和资源关闭

1、druid.properties配置文件:创建Resource Runble文件粘贴下面代码

#德鲁伊Druid数据库连接池采用键值对存储和读取数据,key键是固定的
username=root
url=jdbc:mysql://localhost:3306/所用数据库名
password=root
driverClassName=com.mysql.cj.jdbc.Driver
#Druid可以设置相关值
#连接数初始值
initialSize=10
#连接数最大值
maxActive=100
#连接延时
maxWait=3000

2、创建连接工具类

需要在lib文件夹下导入工具包commons-dbutils-1.7.jar、druid-1.1.12.jar、mysql-connector-j-8.0.32.jar

package utils;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

/**
 * @Author ZRX
 * @Date 2023/6/13 9:22
 * @Description 将数据库的连接和关闭功能作为一个工具类
 * @Version
 */
public class JDBCutils {
//定义为全局私有静态变量
  private  static  DataSource dataSource=null;
    //类加载时,静态代码块就一直存在
    static {
        try {
//加载配置文件
        Properties properties=new Properties();
        
properties.load(JDBCutils.class.getClassLoader().getResourceAsStream("druid.properties"));
//获得Druid的DataSource
            dataSource=DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

/**
 * @methodName getConn
 * @return java.sql.Connection
 * @Description 连接数据库
 * @Date 2023/6/13 9:26
 */
    public static Connection getConnection() {

        try {
//获取连接
            return dataSource.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * @methodName closeRes
     * @param connection 把连接的对象作为参数
     * @return void
     * @Description  关闭连接
     * @Date 2023/6/13 9:28
     */
    public static void closeResource(Connection connection, PreparedStatement preparedStatement)  {
//后开先关
            try {
                if (preparedStatement!=null){
                preparedStatement.close();
                }
                if (connection!=null){
                connection.close();
                }

            }catch (SQLException sq){
                sq.printStackTrace();
            }

    }
    public static void closeResource(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet)  {
//后开先关
        try {
            if (resultSet!=null){
                resultSet.close();
            }
            if (preparedStatement!=null){
                preparedStatement.close();
            }
            if (connection!=null){
                connection.close();
            }

        }catch (SQLException sq){
            sq.printStackTrace();
        }

    }
}

你可能感兴趣的:(java)