JAVA *数据库连接池 * 接JDBC

一.介绍:

        数据库连接池实际上就是一个   " 容器  " 

        当有多个拥护需要访问数据库的时候, 一个用户会打开一个数据库连接, 但是!当用户离开的时候,就会断开数据库连接,那么数据库连接就作废了,之后如果还有用户需要进行访问,需要再建立一个数据库连接......循环往复, 那么数据库的执行效率就会十分的慢....

        以此作为前提的情况下,我们就可以使用连接池!也就是一个连接池当中有多个的数据库连接, 当用户使用完了之后数据库连接并没有被清楚,而是又回到了连接池当中,以便下一个用户再使用数据库连接! 通过这一点,可以极大的提高效率,而减少了建立连接的时间 

        *提高了资源的重用   提升系统响应速度*

        当然,连接池也会有一定的 "自我判断能力"  指的是, 如果一个用户  "睡着了"  也就是长时间占用连接而不归还, 连接池就会强制的拿回这个连接  及时的归还资源,强制的断开连接

                        *避免了连接遗漏*

        由此可见,连接池的优点大概有三大部分

        1.提高资源的重用

        2.提升系统响应速度

        3.避免了数据库的连接遗漏

二.数据库连接池的实现

        1.官方接口

        DataSoure

        功能:获取连接   

        2.常见的数据库连接池:

        DBCP

        C3P0

        Druid(德鲁伊)

        在这里我们重点讲解第三种Druid,其功能十分强大,并且该市JAVA语言最好的数据库连接池之一!

三:"赛前"准备

        Druid的使用主要分为五个步骤:

        1.导入jar包 durid  (拿1.1.12的版本作为一个例子)

        1>首先下载相应的durid包

        https://repo1.maven.org/maven2/com/alibaba/druid/1.1.12/druid-1.1.12.jar

        这个是1.1.12版本的一个druid  jar包 

                                                        ~~~~~下载的~~~~~比较慢

        如果先前并没有导入过mysql的,最好两个都进行下载并导入,安装包请收下,也可以看之前有关JDBC的有关内容补课~~~~

https://cdn.mysql.com/archives/mysql-installer/mysql-installer-community-8.0.35.0.msi       

MYSQL--JDBC*-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/2303_79546217/article/details/136367691?spm=1001.2014.3001.5502

2>导入

                打开IDEA新建文件夹Lib,将刚搞下载好的包复制,粘贴进去即可,如下

        

                                之后点击Add.....,再设置模块有效即可,如图

         2.配置文件!*:

                1.新的IDEA跟之前的IDEA配置文件图像有所变化,但是大体位置依然是没有变的,在相应的src当中创建druid.properties文件,如图

                                        之后向这个文件当中输入以下的数据

driverClassName = com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/填写需要进行操作的数据库的名称
#输入你的MYSQL账户
username=root
#输入你的MYSQL密码
password=*****
#初始化连接个数
initialSize = 5
#最大的连接个数
maxActive = 10
#设置连接池的最大响应时间
maxWait = 3000

        3.加载配置文件

        4.后去连接池对象

        5.获取数据库连接Connection

        详细如下:

package druid;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.util.Properties;

public class druiddemo1 {
    public static void main(String[] args) throws Exception {
        //1.导入JRE包

        //2.定义配置文件

        //3.加载配置文件
        Properties prop =new Properties();
        // 在这里输入相应的已经配置好的druid文件所在地点
        //但是有的时候前面需要加入模块包名称,有时候又不用,所以我们需要提前先进行一些判断,从而方便之后寻找
        //System.out.println(System.getProperty("user.dir"));
       // 输入之后会显示出一个地址,按照地址查找.在地址后面拼接上我们需要进行输入的地址,能够找到配置文件的!
        // 就是我们所需要进行输入的地址!
        prop.load(new FileInputStream("src/druid.properties"));
        //4.获取连接池查询对象
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
        //5.获取数据库连接connection
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
    }
}

                                                                                感谢观看!OVER

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

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

相关文章

(Linux学习四)用户权限介绍以及操作UGO(一)

用户提权 su永久提权: su - root //-加不加- 都可以 - 后面可以加变量 su root //su - root //切换root权限,需要输入密码 exit //登出 root 再次exit退出shellsudo 临时提权:部分特权语法:user MACHIN…

MySQL相关知识汇总

MySQL是一个广泛使用的开源关系型数据库管理系统,它以其高性能、稳定性和易用性而备受开发者喜爱。在软件开发领域,无论是大型项目还是小型应用,MySQL都扮演着重要的角色。本文将对MySQL的一些关键知识点进行汇总,帮助读者更好地了…

type-alisaea-package

type-alisaea-package : 是自动配置别名,也就是设置这个之后,在Mybatis的Mapper文件里就可以写对应的类名,而不用写全路径名了 ; 作用 : 简化xml文件中resultType中指定路径配置 ; 如何配置 : 在springboot项目中的application.yaml文…

【网站项目】219一中体育馆管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

EasyRecovery16电脑硬盘数据恢复软件功能详解

在数字化时代,人们在日常生活和工作中越来越依赖于电脑和移动设备。不管是个人用户还是企业,数据的重要性都不言而喻。然而,数据丢失和损坏的风险也随之增加,因此,数据恢复软件的需求也日益增长。 EasyRecovery 16是一…

transformer--编码器2(前馈全连接层、规范化层、子层链接结构、编码器层、编码器)

前馈全连接层 什么是前馈全连接层: 在Transformer中前馈全连接层就是具有两层线性层的全连接网络 前馈全连接层的作用: 考虑注意力机制可能对复杂过程的拟合程度不够,通过增加两层网络来增强模型的能力 code # 前馈全连接层 class PositionwiseFeedForward(nn.Module):de…

电机的极数和槽数,机械角度和电角度,霍尔IC,内外转子

什么是电机的极数和槽数? 【第7集】② 正弦波驱动的转矩脉动、正弦电流的时序和相位变化、超前角控制(超前角调整)、正弦波驱动的各种波形 - 电源设计电子电路基础电源技术信息网站_罗姆电源设计R课堂 (rohm.com.cn) 下面为您介绍表示电机…

[计算机网络]--I/O多路转接之poll和epoll

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、poll函…

前端开发中的浏览器兼容性问题及解决方案

前言 在之前的文章中,我们学习了前端开发中的网站性能提升的相关内容。在本文中,我们将深入探讨一个前端开发者必须面对的问题:浏览器兼容性问题。我们将介绍什么是浏览器兼容性问题,为什么会发生这种问题,以及如何解决…

ArrayBlockingQueue 数组阻塞队列 源码阅读

1. 概述 数组阻塞队列 有界的阻塞数组, 容量一旦创建, 无法修改阻塞队列, 队列满的时候, 往队列put数据会被阻塞, 队列空, 取数据也会被阻塞并发安全 2. 数据结构 /** 存储队列元素的数组 */ /** 存储队列元素的数组 */ final Object[] items;/** 队首位置,下一…

D2BNet

task-specific contextual information {M l _l l​} that we split into { M l m , M l a M_l^m,M_l^a Mlm​,Mla​} 辅助信息 作者未提供代码

基于Spring Boot+Vue的旅游网站

末尾获取源码作者介绍:大家好,我是墨韵,本人4年开发经验,专注定制项目开发 更多项目:CSDN主页YAML墨韵 学如逆水行舟,不进则退。学习如赶路,不能慢一步。 目录 一、项目简介 二、开发技术与环…

Fastwhisper + Pyannote 实现 ASR + 说话者识别

文章目录 前言一、faster-whisper简单介绍二、pyannote.audio介绍三、faster-whisper pyannote.audio 实现语者识别四、多说几句 前言 最近在研究ASR相关的业务,也是调研了不少模型,踩了不少坑,ASR这块,目前中文普通话效果最好的…

ASM处理字节码流程

ASM处理字节码流程 ASM是一个操作Java字节码类库,其操作的对象是字节码数据,处理字节码方式是“拆分-修改-合并”。 将.class文件拆分成多个部分 对某一个部分的信息进行修改 将多个部分重新组织成一个新的class文件

机器学习-4

文章目录 前言数组创建切片索引索引遍历切片编程练习 总结 前言 本篇将介绍数据处理 Numpy 库的一些基本使用技巧,主要内容包括 Numpy 数组的创建、切片与索引、基本运算、堆叠等等。 数组创建 在 Python 中创建数组有许多的方法,这里我们使用 Numpy 中…

校企合作项目总结

校企合作总结 前言项目框架开发待办水平越权总结 前言 寒假里小组给了校企合作的项目,分配给我的工作量总共也就两三套crud,虽然工作很少,但还是从里面学到了很多东西,收获了大量的实习经验,在这里总结记录一下。 项…

LLM@本地大语言模型@Gemma的安装与使用@dockerDesktop的安装和启动

文章目录 准备refsollama安装过程2b模型的效果小结👺 ollama的进一步使用帮助文档查看ollama安装了哪些模型使用皮肤来使聊天更易用 使用Chatbot UI皮肤安装docker👺启动docker载入和退出dockerchatbot 网页版皮肤 使用命令行聊天小结👺 准备…

vulhub中JBoss 4.x JBossMQ JMS 反序列化漏洞复现(CVE-2017-7504)

Red Hat JBoss Application Server(AS,也称WildFly)是美国红帽(Red Hat)公司的一款基于JavaEE的开源的应用服务器,它具有启动超快、轻量、模块化设计、热部署和并行部署、简洁管理、域管理及第一类元件等特…

R750 install AMD MI210GPU

一、 查看服务器GPU卡信息 可以首先在服务器上check 当前GPU的详细信息是否匹配 二、安装 Ubuntu22.04操作系统 服务器CHECK 安装的AMD GPU 是否被系统识别 #lspci | grep AMD 查看GPU信息 可以看到已经识别成功 三、安装AMD GPU驱动 https://rocm.docs.amd.com/projec…

使用query请求数据出现500的报错

我在写项目的时候遇到了一个问题,就是在存商品id的时候我将它使用了JSON.stringify的格式转换了!!!于是便爆出了500这个错误!!! 我将JSON.stringify的格式去除之后,它就正常显示了&…