JDBC Druid连接池 工具类

一、前期准备

1.配置文件(druid.properties)

在使用 Druid 时候,这个文件可以随意放,我放到了src目录下。

url=jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
username=root
password=root
driverClassName=com.mysql.cj.jdbc.Driver
#最初连接数
initialSize=10
#最大连接数
maxActive=20
#最多等待时间
maxWait=1000
filters=wall

2.我的版本:

mysql 8.0.21
mysql-connector-java-8.0.21
druid-1.1.22.jar

二、工具类

1.成员变量

    private static DataSource ds ;

2.静态代码块

static {
        try {
            //1.创建配置文件对象
            Properties pro = new Properties();
            //2.加载配置文件
            pro.load(new FileReader("E:\\Java_IDEA\\project\\src\\druid.properties"));
            //3.创建DataSource 连接池
            ds =DruidDataSourceFactory.createDataSource(pro);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

3.获取连接对象

public static Connection getConnection() throws SQLException {
        return ds.getConnection();
    }

4.释放资源

第一个参数:连接数据库的对象
第二个参数:执行sql语句的对象
第三个参数:数据库返回的结果对象

public static void close(ResultSet result, Statement state ,Connection conn){
        if (result != null){
            try {
                result.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (state != null){
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

二、Main

public class druid_Util_demo {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstate = null;
        try {
            //获取连接池工具类中的连接对象
            conn = Util_druid.getConnection();
            String sql = "insert into account value (null,?,?)";
            //执行sql语句对象
            pstate = conn.prepareStatement(sql);
            //设置数据
            pstate.setString(1,"孙七");
            pstate.setString(2,"55");
            //输出结果
            int count = pstate.executeUpdate();
            System.out.println(count);
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            //释放资源
            Util_druid.close(null,pstate,conn);
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值