Druid连接池-JDBC工具类封装

1、导入相关的jar包和配置文件

:本文仅提供作者自己查阅使用
导入Druid的jar包和mysql的驱动包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o2FsJZS8-1632387606715)(%E5%8D%9A%E5%AE%A2.assets/image-20210923165510939.png)]
注意:这里有些 配置文件的key不能随便取,随便取的 key 有时候会出现连不上数据库的情况或者是空指针异常

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/dbproduct
username=root
password=root
initialSize=5
maxActive=10
maxWait=3000
maxIdle=8
minIdle=3

2、项目文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qDYLsV8O-1632387564964)(%E5%8D%9A%E5%AE%A2.assets/image-20210923165644773.png)]

3、代码

JDBCUtils

package com.druid.utils;

import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.mysql.jdbc.PreparedStatement;

import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

//Druid连接池工具类
public class JDBCUtils {
    private static Properties properties = new Properties();
    private static DataSource dataSource;

    static {
        try {
            //加载配置文件
            InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("druid.properties");

            //加载到内存中
            properties.load(is);

            //获取配置文件
            dataSource = DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //获取连接
    public static Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }

    //获取数据源
    public static DataSource getDataSource(){
        return dataSource;
    }

    //释放资源
    public static void close(ResultSet rs, PreparedStatement ps, Connection conn){

        if(rs!=null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(ps!=null){
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

Demo

package com.druid.demtest;

import com.druid.utils.JDBCUtils;

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

public class Demo {
    public static void main(String[] args) throws SQLException {
        //测试连接
        Connection connection = JDBCUtils.getConnection();
        System.out.println(connection);

        //测试数据源
        DataSource dataSource = JDBCUtils.getDataSource();
        System.out.println(dataSource);
    }
}