java之Druid连接池介绍和使用方法 简单易懂

文章目录

  • 一、什么是数据库连接池?
  • 二、 为什么选择Druid连接池?
  • 三、连接池的jar包
  • 四、连接池的使用
    • 1、配置及使用配置文件连接mysql数据库
    • 2、使用Map集合使用Druid
  • 五、总结

一、什么是数据库连接池?

数据库连接池是一个存储数据库连接的缓冲区,用于重复使用这些连接,以避免在每次请求时都创建新的数据库连接。连接到数据库的过程是相对耗时的,因此连接池可以显著提高应用程序的性能。它们还有助于防止应用程序超负荷地创建太多数据库连接,从而减轻数据库服务器的负担。

二、 为什么选择Druid连接池?

Druid是一个开源的、高性能的数据库连接池,它在很多方面超越了其他连接池。

三、连接池的jar包

根据自己下载的软件版本进行下载jar包版本
https://repo1.maven.org/maven2/com/alibaba/druid/

四、连接池的使用

1、配置及使用配置文件连接mysql数据库

配置文件 properties

代码如下:

# 加载驱动
driverClassName = com.mysql.cj.jdbc.Driver
# url
url = jdbc:mysql://127.0.0.1:3306/studentdb
# 用户名
username = root
# 密码
password = sasa
# 初始连接数
initialSize = 10
# 最小连接
minIdle = 5
# 最大连接
maxActive = 50
# 超时时间
maxWait = 5000

使用代码如下:

public void druidshow1() throws Exception {
        //加载配置文件
        Properties properties = new Properties();
        properties.load(new FileInputStream("src\\druid.properties"));
        //在工厂中创建一个数据源,数据源的连接信息来源于配置文件中
        DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
        Connection conn = dataSource.getConnection();
        ResultSet r = conn.prepareStatement("select count(*) from student").executeQuery();
        if (r.next()){
            System.out.println(r.getInt(1));
        }
        r.close();
        conn.close();
    }

运行结果:
在这里插入图片描述

2、使用Map集合使用Druid

代码如下:

public void druidshow1() throws Exception {
        //集合方法
        HashMap map = new HashMap();
        map.put("driverClassName","com.mysql.cj.jdbc.Driver");
        map.put("url","jdbc:mysql://127.0.0.1:3306/studentdb");
        map.put("username","root");
        map.put("password","sasa");
        //在工厂中创建一个数据源,数据源的连接信息来源于配置文件中
        DataSource dataSource = DruidDataSourceFactory.createDataSource(map);
        Connection conn = dataSource.getConnection();
        ResultSet r = conn.prepareStatement("select count(*) from student").executeQuery();
        if (r.next()){
            System.out.println(r.getInt(1));
        }
        r.close();
        conn.close();
    }

运行结果:
在这里插入图片描述

五、总结

以下是一些选择Druid的原因:

1、监控和统计:Druid提供了丰富的监控和统计功能,您可以了解连接池的使用情况、SQL执行情况等。这有助于识别性能问题和优化SQL查询。

2、防SQL注入:Druid内置了防SQL注入的功能,可以有效地防止潜在的安全风险。

3、高性能:Druid经过精心优化,具有出色的性能。它支持连接池预热,可以在应用程序启动时提前创建一些连接,以减少第一个请求的延迟。

4、丰富的配置选项:Druid允许您通过配置文件或编程方式进行高度自定义,以满足各种需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/266076.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

银河麒麟v10 rpm安装包 安装mysql 8.35

银河麒麟v10 rpm安装包 安装mysql 8.35 1、卸载mariadb2、下载Mysql安装包3、安装Mysql 8.353.1、安装Mysql 8.353.3、安装后配置 1、卸载mariadb 由于银河麒麟v10系统默认安装了mariadb 会与Mysql相冲突,因此首先需要卸载系统自带的mariadb 查看系统上默认安装的M…

红队打靶练习:DIGITALWORLD.LOCAL: MERCY V2

目录 信息收集 1、arp 2、netdiscover 3、nmap 4、nikto 5、whatweb 6、总结 目录探测 1、gobuster 2、dirsearch WEB enum4linux枚举工具 smbclient工具 knock工具 CMS 文件包含漏洞 Tomcat 提权 系统信息收集 本地提权 get root 信息收集 1、arp ┌──…

天文与计算机:技术的星辰大海

天文与计算机:技术的星辰大海 一、引言 在人类的历史长河中,天文学与计算机技术这两个领域似乎相隔甚远,然而在科技的推动下,它们却逐渐走到了一起,为人类对宇宙的探索开辟了新的道路。天文观测的复杂度与数据量随着…

C++面向对象(OOP)编程-STL详解(vector)

本文主要介绍STL六大组件,并主要介绍一些容器的使用。 目录 1 泛型编程 2 CSTL 3 STL 六大组件 4 容器 4.1 顺序性容器 4.1.1 顺序性容器的使用场景 4.2 关联式容器 4.2.1 关联式容器的使用场景 4.3 容器适配器 4.3.1 容器适配器的使用场景 5 具体容器的…

Java经典框架之Spring

Java经典框架之Spring Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. Spring简介 2.…

20231220将NanoPC-T4(RK3399)开发板的Android10的SDK按照Rockchip官方挖掘机开发板编译打包刷机之后启动跑飞

20231220将NanoPC-T4(RK3399)开发板的Android10的SDK按照Rockchip官方挖掘机开发板编译打包刷机之后启动跑飞 2023/12/20 17:19 简略步骤:rootrootrootroot-X99-Turbo:~/3TB$ tar --use-compress-programpigz -xvpf rk3399-android-10.git-20210201.tgz rootrootro…

HarmonyOS4.0系统性深入开发02 UIAbility组件详解(上)

UIAbility组件概述 概述 UIAbility组件是一种包含UI界面的应用组件,主要用于和用户交互。 UIAbility组件是系统调度的基本单元,为应用提供绘制界面的窗口;一个UIAbility组件中可以通过多个页面来实现一个功能模块。每一个UIAbility组件实例…

智能优化算法应用:基于爬行动物算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于爬行动物算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于爬行动物算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.爬行动物算法4.实验参数设定5.算法结果6.…

Android Canvas画布saveLayer与对应restoreToCount,Kotlin

Android Canvas画布saveLayer与对应restoreToCount,Kotlin private fun mydraw() {val originBmp BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val newBmp Bitmap.createBitmap(originBmp.width, originBmp.heigh…

【数据结构一】初始Java集合框架(前置知识)

Java中的数据结构 Java语言在设计之初有一个非常重要的理念便是:write once,run anywhere!所以Java中的数据结构是已经被设计者封装好的了,我们只需要实例化出想使用的对象,便可以操作相应的数据结构了,本篇…

数值分析期末复习

第一章 科学计算 误差 解题步骤 先求绝对误差: ∣ x − x ∗ ∣ |x - x^*| ∣x−x∗∣求相对误差限: ∣ x − x ∗ ∣ x ∗ \frac{|x\,\,-\,\,x^*|}{x^*} x∗∣x−x∗∣​求有效数字 ∣ x − x ∗ ∣ 需要小于它自身的半个单位 |x-x^*|\text{需要小于它自身的半个单位} ∣…

qt简单连接摄像头

要使用摄像头,就需要链接多媒体模块以及多媒体工具模块 需要在.pro文件中添加QT multimedia multimediawidgets 是用的库文件 QCamera 类用于打开系统的摄像头设备, QCameraViewfinder 用于显示捕获的视频, QCameraImageCapt…

3D 纹理贴图基础知识

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 介绍 纹理贴图是创建模型时离不开的最后一块拼图。同样,…

陈可之|三峡|《河水不犯井水的游戏》

《河水不犯井水的游戏》 尺寸:130x90cm 陈可之2007年绘 油画《河水不犯井水的游戏》是陈可之先生三峡系列作品之一,巧借古代传说,并具象化为螃蟹、乌龟、长江水,描绘了一幅和谐共生的画面。 画面右侧,蜿蜒宽阔的长江水…

内存函数的学习

额外知识点 第一个 假设c为int类型,(char)c之后,之后如果还用变量c的话,c依然为int类型。()强制转换操作符并不会永久改变原本的变量类型。 第二个 \0在打印时不会显示出来 第三个 void …

Latex生成的PDF中加入书签/Navigation/导航

本文参考:【Latex学习】在生成pdf中加入书签/目录/提纲_latex 书签-CSDN博客 (这篇文章写的真的太棒了!非常推荐) 题外话,我的碎碎念,这也是我如何提高搜索能力的办法:想在Latex生成的PDF中加入…

解决用Fiddler抓包,网页显示你的连接不是专用/私密连接

关键:重置fiddler的证书 在Fiddler重置证书 1、Actions --> Reset All Certificates --> 弹窗一路yes 2、关掉Fiddler,重新打开 3、手机删掉证书,重新下载安装。 (如果还不行,重新试一遍,先把浏览器…

用python对航空公司客户价值进行聚类分析

1.实验目的 1.会用Python创建KMeans聚类分析模型; 2.使用KMeans模型对航空公司客户价值进行聚类分析; 3.会对聚类结果进行分析 2.实验设备 Jupyter notebook 3.实验原理 4.实验内容 使用sklearn.cluester的KMeans类对航空公司客户数据进行聚类分析&…

Springboot+vue的装饰工程管理系统(有报告),Javaee项目,springboot vue前后端分离项目

演示视频: Springbootvue的装饰工程管理系统(有报告),Javaee项目,springboot vue前后端分离项目 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的装饰工程管理系统,采用M&#xff08…

TSINGSEE青犀可视化视频云平台JT/T1078接入能力在智慧物流中的应用

一、引言 随着科技的快速发展和全球贸易的蓬勃发展,智慧物流成为了现代物流业的重要发展方向。智慧物流通过引入先进的信息技术,实现了物流过程的自动化、智能化和信息化,从而提高了物流效率和准确性。在这个过程中,JT/T1078接入…