Maven下Druid连接池配置及使用

2023-10-30

1.在pom.xml中导入架包及jdbc架包

<dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>druid</artifactId>
          <version>1.1.6</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.17</version>
    </dependency>

2.定义配置文件(这里的文件时properties格式的,可以放到任意位置)
druid.properties

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/db1?serverTimezone=Asia/Shanghai
username=root
password=root
#初始化连接数量
initialSize=5
#最大连接数
maxActive=10
#最大等待时间
maxWait=3000

3.测试,需要先加载配置文件

import com.alibaba.druid.pool.DruidDataSourceFactory;

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

public class DruidDemo {
    public static void main(String[] args) throws Exception {
        //1.加载配置文件
        Properties pro = new Properties();
        InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
        pro.load(is);
        //2.获取连接池对象
        DataSource ds = DruidDataSourceFactory.createDataSource(pro);
        //3.获取连接
        Connection conn = ds.getConnection();
        System.out.println(conn);
    }
}

4.结果:出现如下图即成功
在这里插入图片描述
5.简化步骤,将一些操作封装到一个工具类中
JDBCUtils.java

import com.alibaba.druid.pool.DruidDataSourceFactory;

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

/*
Druid连接池的工具类
 */
public class JDBCUtils {
    //1.定义成员变量 DataSource
    private static DataSource ds;
    static {
        //1.加载配置文件
        Properties pro = new Properties();
        try {
            pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
            //获取DataSource
            ds = DruidDataSourceFactory.createDataSource(pro);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //获取连接
    public static Connection getConnection() throws SQLException {
        return ds.getConnection();
    }
    //释放资源
    public static void close(Statement stmt,Connection conn){
        if (stmt!=null) {
            try {
                stmt.close();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
        if (conn!=null){
            try {
                conn.close();//归还连接
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
    }
    public static void close(ResultSet rs, Statement stmt, Connection conn){
        if (rs!=null) {
            try {
                rs.close();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
        if (stmt!=null) {
            try {
                stmt.close();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
        if (conn!=null){
            try {
                conn.close();//归还连接
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
    }
    //获取连接池
    public static DataSource getDataSource(){
        return ds;
    }
}

测试工具类:DruidTest.java

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

//测试工具类
public class DruidTest {
    public static void main(String[] args) throws SQLException {
        //给dept表添加一条记录
        //1.获取连接
        Connection conn = JDBCUtils.getConnection();
        //2.定义sql
        String sql = "insert into dept values(?,?,?)";
        //3.获取邮差对象
        PreparedStatement ps = conn.prepareStatement(sql);
        //4.给?赋值
        ps.setInt(1,50);
        ps.setString(2,"HAHAHAH");
        ps.setString(3,"CHINA");
        //5.执行sql
        ps.executeUpdate();
    }
}

结果:插入成功在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Maven下Druid连接池配置及使用 的相关文章

随机推荐

  • SmartBuffer-让你不再为共享与私有缓存处理逻辑费神

    一 带着问题 找思路 有这样一个需求 有3个算法类 我们分别称为TestAlgo1 TestAlgo2 TestAlgo3 每个算法可以设置使用buffer类型是共享或私有 补充 共享是指在同类型算法的多个实例中使用同一块buffer 比如
  • Python-mock

    文章目录 一 接口测试中Mock的用处 二 使用步骤 1 Moco框架搭建Mock服务 Moco说明 2 Python unittest模块自带的mock 一 接口测试中Mock的用处 前后端开发 后端接口未开发完成 前端调用mock数据进
  • 网易云音乐评论抓取(js逆向)

    网易云音乐评论抓取 js逆向 本文通过分析网易云音乐的js加密 通过构造相关的参数 获取网易云音乐评论 所用语言和相关模块 python3 6 requests 网站特点分析 通过分析网站可知 评论获取的url https music 16
  • JavaScript和C++的一些显著差异和学习tips

    之前学习JS来做Vue Node js前后端 最近开始重新学习C 显然这两者的差异巨大 主要注意的点 C 的语法结构 while for JS中没有数据类型 而C 的数据类型需要学习 例如DWORD等等 面向对象 JavaScript的对象
  • 人工智能基础篇

    人工智能基础篇 本篇目录 一 人工智能 机器学习 深度学习的关系 1 关系图 2 人工智能 3 人类智能过程 4 机器学习 5 深度学习 二 人工智能研究的领域 三 人工智能的应用场景 1 计算机视觉 2 语音技术 3 自然语言处理 4 决
  • C++学习第二弹之整数数据类型

    本文主要介绍C 数 整数 包括创建变量和编写各种类型的常量 整数 不同C 数据类型使用不同的内存来存储整数 内存越大能够表示的数值就越大 同时有的类型可以表示正值和负值 有些不能表示负值 C 基本整型有char short int long
  • C++设计模式由浅入深(一)—— 继承和多态

    一 继承和多态 C 首先是一个面向对象的语言 对象是C 程序的基石 通过类的继承和派生 软件工程师可以自由表达对软件系统中各个部分之间的关系与交互逻辑 定义各个组件之间的接口和实现 有秩序地组织起数据结构和代码 本书的目的不是为了教授C 语
  • 项目——电子词典(客户端、服务器交互,字典导入,单词查询)

    一 项目要求 登录注册功能 不能重复登录 重复注册 单词查询功能 历史记录功能 存储单词 意思 以及查询时间 基于TCP 支持多客户端连接 采用数据库保存用户信息与历史记录 将dict txt的数据导入到数据库中保存 按下ctrl c退出客
  • Fiddler抓包工具总结

    序章 Fiddler是一个蛮好用的抓包工具 可以将网络传输发送与接受的数据包进行截获 重发 编辑 转存等操作 也可以用来检测网络安全 反正好处多多 举之不尽呀 当年学习的时候也蛮费劲 一些蛮实用隐藏的小功能用了之后就忘记了 每次去网站上找也
  • qt 智能指针介绍

    简介 Qt 提供了很多智能指针 比较常见的有 QPointer QSharedDataPointer QSharedPointer QWeakPointer 和 QScopedPointer 描述 QPointer 4 0 已经过时 可以被
  • php fastcgi,配置apache以fastcgi运行php

    apache默认是用自带的mod php模块运行php 现在我们介绍使用fastcgi来执行php脚本 先说下fastcgi的优点 Fastcgi的优点 从稳定性上看 fastcgi是以独立的进程池运行来cgi 单独一个进程死掉 系统可以很
  • 解决高德地图AMap is not defined

    传送门 https blog csdn net qq 36317441 article details 77187369 总结一下 就是将script 标签引入的高德地图地址 放到body中
  • Leetcode 面试题 01.06.字符串压缩(Compress String LCCI)

    Leetcode 面试题 01 06 字符串压缩 1 题目描述 Leetcode题目链接 字符串压缩 利用字符重复出现的次数 编写一种方法 实现基本的字符串压缩功能 比如 字符串aabcccccaaa会变为a2b1c5a3 若 压缩 后的字
  • 虚拟机占用磁盘越来越大的解决方案大总结

    原文链接 https blog csdn net Shine Su article details 119676646 作者 填坑小霸王 在电脑上安装Vmware 安装ubuntu16 04 进行开发 使用过程中没有在意 忽然有一天发现磁盘
  • 【esp32&lvgl】-2.1 # esp32移植lvgl7驱动st7789屏幕(ESP-IDF框架)

    目录 一 前言 二 代码 三 硬件说明 四 ESP IDF设置 重要 五 屏幕偏移修改驱动文件 参考资料 一 前言 前几天在ardiuno框架下基于platformIO用TFT eSPI库实现了lvgl库的移植 这种方法虽然在lvgl的版本
  • 电源系列1:LDO 基本 原理(一)

    微信公众号 工程师看海 后台回复 LDO仿真文件 转载请注明原文地址 https blog csdn net u013608300 article details 108994763 1 前言 目前市场上无论什么电子产品 只要涉及到电就必须
  • ssh 运行 java,通过ssh将Java应用程序作为后台进程运行

    I m currently developing a simple deployment script for vms running ubuntu All these machines are supposed to run a java
  • 基于Springboot的SSO单点登陆系统的登陆操作实战

    一 前言 1 使用环境 SpringBoot2 X MyBatis 基于redis存储的springSession 2 基础学习 关于SSO的基础学习可以参考该文章 单点登录 SSO 从原理到实现 代码风格使用的是晓风轻的代码规范 对于其中
  • c语言的文法,c语言实现First文法

    最近编译原理课程实验做LL 1 中的First和Follow文法的算法实现 百度了半天 要么是要钱 要么是觉得好复杂 作为学渣的我看不懂 那为了完成实验 只能自己慢慢搞出来 由于之前的课也没怎么听 研究这两个文法都用了好长时间 那么关于Fi
  • Maven下Druid连接池配置及使用

    1 在pom xml中导入架包及jdbc架包