JDBC 数据库连接池之Driud

news2024/11/18 14:02:00

1 数据库连接池简介

  • 数据库连接池是个容器,负责分配、管理数据库连接(Connection)

  • 它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;

  • 释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏

  • 好处

    • 资源重用
    • 提升系统响应速度
    • 避免数据库连接遗漏

之前我们代码中使用连接是没有使用都创建一个Connection对象,使用完毕就会将其销毁。这样重复创建销毁的过程是特别耗费计算机的性能的及消耗时间的。

而数据库使用了数据库连接池后,就能达到Connection对象的复用,如下图

在这里插入图片描述

连接池是在一开始就创建好了一些连接(Connection)对象存储起来。用户需要连接数据库时,不需要自己创建连接,而只需要从连接池中获取一个连接进行使用,使用完毕后再将连接对象归还给连接池;这样就可以起到资源重用,也节省了频繁创建连接销毁连接所花费的时间,从而提升了系统响应的速度。

2 数据库连接池实现

  • 标准接口:DataSource

    官方(SUN) 提供的数据库连接池标准接口,由第三方组织实现此接口。该接口提供了获取连接的功能:

    Connection getConnection()
    

    那么以后就不需要通过 DriverManager 对象获取 Connection 对象,而是通过连接池(DataSource)获取 Connection 对象。

  • 常见的数据库连接池

    • DBCP
    • C3P0
    • Druid

    我们现在使用更多的是Druid,它的性能比其他两个会好一些。

  • Druid(德鲁伊)

    • Druid连接池是阿里巴巴开源的数据库连接池项目

    • 功能强大,性能优秀,是Java语言最好的数据库连接池之一

3 Driud使用

  • 导入jar包 druid-1.1.12.jar
  • 定义配置文件
  • 加载配置文件
  • 获取数据库连接池对象
  • 获取连接

现在通过代码实现,首先需要先将druid的jar包放到项目下的lib下并添加为库文件

在这里插入图片描述

项目结构如下:

在这里插入图片描述

编写配置文件如下:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///db1?useSSL=false&useServerPrepStmts=true
username=root
password=1234
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000

使用druid的代码如下:

/**
 * Druid数据库连接池演示
 */
public class DruidDemo {

    public static void main(String[] args) throws Exception {
        //1.导入jar包
        //2.定义配置文件
        //3. 加载配置文件
        Properties prop = new Properties();
        prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
        //4. 获取连接池对象
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

        //5. 获取数据库连接 Connection
        Connection connection = dataSource.getConnection();
        System.out.println(connection); //获取到了连接后就可以继续做其他操作了

        //System.out.println(System.getProperty("user.dir"));
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据安全新战场,EasyMR为企业筑起“安全防线”

2020年1月,时间跨度长达14年的,微软2.5亿条客户服务和支持记录在网上泄露; 同年4月,微盟发生史上最贵“删库跑路”事件,造成微盟市值一夜之间缩水约24亿港币; 今年7月,网信办依据《数据安全法…

PCIEBPMCx4板卡

PCIEBPMCx4本板卡可以使标准的PMC板卡安装于带有PCIE插槽的PC机上使用,安装后占一个槽位,槽位可以为PCIE x4 PCIE x8、PCIE x16,安装后工作在PCIE x4模式。PCIE X1 后开口也可以使用,但只运行在PCIE X1模式。PCIE支持X4 V2.0,板载…

Python对json的操作总结

Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。现在也常用于http请求中,所以对json的各种学习,是自然而然的事情。 J…

C++学习笔记(十四)——vector的模拟实现

vector各函数接口总览 vector当中的成员变量介绍 默认成员函数 构造函数1 构造函数2 构造函数3 拷贝构造函数 赋值运算符重载函数 析构函数 迭代器相关函数 begin和end 容量和大小相关函数 size和capacity reserve resize empty 修改容器内容相关函数 push_ba…

centos8:安装java

一、背景 因为centos 8 安装Jenkins需要java环境,所以本文记录安装java环境过程。 二、环境 开发电脑:Windows 10 CentOS 8.4 64位 三、安装 3.1、java -version检查是否已安装 java -version 没有安装 3.2、检查系统是否自带jdk rpm -qa |grep …

Word控件Spire.Doc 【超链接】教程(1):如何在C#/VB.NET中给Word 文档插入超链接

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

系统移植 uboot 2

一、uboot源码获取 1.1 uboot官网获取 ftp://ftp.denx.de/pub/u-boot/ 前提是是芯片厂家将uboot源码开源到uboot官网上 1.2 ST开发社区获取 https://wiki.stmicroelectronics.cn/stm32mpu/wiki/STM32MP1_Developer_Package 1.3 ST官网 https://www.st.com/en/embedded-sof…

opcj3—人人开源三大套件的简单用法

renren开源是一个很不错的开源开发组件,人人开源 其中目前对我们最有用的有三个:renren-fast、renren-fast-vue和renren-generator。 renren-generator是核心服务,可以根据数据库自动生成从controller层到service层,再到持久层的…

.net开发安卓入门 - 环境安装

文章目录工具VS2022Android SDK Manager如下图,安装一个镜像和工具模拟器设备管理器如下图启动模拟器,看一下效果常见问题工具 VS2022 下载地址:https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?skuCom…

Linux邮件服务Postfix部署

我们看下邮件协议: 简单邮件传输协议(SMTP):用于发送和中转出的电子邮件。使用TCP/25端口。 邮局协议版本(POP3):用于将邮件存储到本地,占用服务器的TCP/110端口。 Internet 消息访问…

【Python游戏】一个csdn小编用Python语言写了一个足球游戏,成功模拟世界杯决赛现场

前言 halo,包子们下午好 最近世界杯不是很火呀 很多小伙伴应该都知道球赛反正买,别墅靠大海! 今天就给大家实现一个类似世界杯的足球小游戏,咱就说真的堪比国足了! 哈哈哈~ 好啦 直接开整!!&am…

「以代码作画」从数据角度剖析Art Blocks生成艺术

作者:Mia Bao, co-founder of thepass.to, chief partner of WHALE members 数据:Jin, data analyst of thepass.to 出品:ThePASS & BeepCrypto 文章数据:https://docs.google.com/spreadsheets/d/1zDun4eUTwA-BMU5Hl2c5EC…

基于SSM网上商城购物系统的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

目标检测算法——人体姿态估计数据集汇总 2(附下载链接)

🎄🎄近期,小海带在空闲之余收集整理了一批人体姿态估计数据集供大家参考。 整理不易,小伙伴们记得一键三连喔!!!🎈🎈 目录 一、V-COCO数据集 二、宜家 ASM 数据集 三、…

如何解决在加载、保存或覆盖项目文件时 Lumion 可能无法打开或显示错误的问题?

为什么在加载、保存或覆盖项目文件时 Lumion 可能无法打开或显示错误?那么这个问题大家跟着赞奇云工作站一起来解答吧。 1. 这就是为什么 如果Lumion在加载 .LS Project文件时崩溃或显示错误 ,通常意味着 .LS Project 文件因保存错误而损坏。遗憾的是&…

电脑技巧:分享6个实用的资源网站

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

一框式检索和高级检索

0. 学习内容 2022年12月8日15:38:07CNKI学习 学会多种检索方式检索基础文献 1. 一框式检索 1.1 简单使用 左侧选择检索字段 根据需求选择 输入想要的检索词输入想要的检索范围 顾名思义:在检索的时候只有一个搜索框,从而实现对文献进行检索 2. 高级检索…

「MacOS」在MacOS中添加环境变量

背景 最近在学习cmake使用,官网有dmg的安装教程,直接下载dmg文件然后拖拽到Application文件里就好。但在终端中执行cmake命令却显示没有cmake命令。下面内容以cmake为例,介绍如何在环境变量中添加命令行命令,其他命令也是如此。 …

m分别使用Dijkstra算法和Astar算法进行刚体机器人最短路径搜索和避障算法的matlab仿真,带GUI界面

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展…

图片加贴纸怎么添加?快来使用这些实用的添加方法

有时候我们需要发送一些图片给对方,可是图片上有自己的隐私,而且这些信息都显示在图片中间,那我们应该怎么处理这部分信息呢?可能有些小伙伴会使用马赛克来模糊这部分信息,但是马赛克不但影响图片美观,处理…