加强-jdbc与连接池的关系,连接池有哪些

在这里插入图片描述
在这里插入图片描述
0驱动什么是数据库驱动
开发人员编写好应用程序之后想要操作数据库,平常就了解到有很多种数据库如oracle\mysql\sql server,代码已经写好了是一套总不能在使用不同的数据库技术的时候代码就要写不同方式连接来连接数据库吧,所以开发商在开发数据库软件的时候都按照同一份标准:应用程序和数据库之间进行交互的规则标准,粗糙的说就是厂商把要连接的工具等都放进驱动包里,开发人员找这个驱动包就行了。

那多种驱动包谁来管理呢-》jdbc

1什么是jdbc
应用程序与数据库之间的交互需要一个中间人来操作,这个中间人就是jdbc【java database connection】-》实质就是java API,也就是一系列接口,开发人员编写好应用程序之后,直接调用这些接口来操作数据库即可

jdbc与驱动的关系:mysql厂商提供mysql驱动,这个驱动是mysql厂商根据jdbc提供的接口编写访问mysql数据库的方法。jdbc与驱动的关系

由于数据库的厂商多样性导致了jdbc与不同数据库交互需要一个统一的“管理员”-》jdbc driver manager。也就是不仅要有管理各个不同数据库驱动的功能,也知道怎么与数据库打交道。

driver manager能干什么
注意:DriverManager 用于创建连接,但它不直接支持连接池功能。-》第三方连接池库,如 Apache Commons DBCP、C3P0 或 HikariCP****

JDBC不仅需要提供访问数据库的API,还需要封装与各种数据库服务器通信的细节

从上图中可以看出,JDBC的实现包括三部分。

(1)JDBC驱动管理器:负责注册特定的JDBC驱动器,主要通过java.sql. Driver Manager类实现。

(2)JDBC驱动器API:由Sun公司负责制定,其中最主要的接口是java.sql. Driver接口。

(3)JDBC驱动器:它是一种数据库驱动,由数据库厂商创建,也称为JDBC驱动程序JDBC驱动器实现了JDBC驱动器API,负责与特定的数据库连接,以及处理通信细节。

刚开始学习的时候一定写过这样的代码,这就是最开始的在应用程序中使用jdbc的原始方式

		//1.注册数据库的驱动
        //或者直接通过反射Class.forName("com.mysql.jdbc.Driver")
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        //2.通过 DriverManager获取数据库连接Connection
        String url=" ";
        String usernames=" ";
        String password=" ";
        Connection conn=DriverManager.getConnection(url, username, password);
        //3.通过 Connection对象获取 Statement对象
        Statement stmt= conn.createStatement();
        //4.创建sql语句,处理结果集,关闭结果集

2数据库连接池是什么理解数据库连接池
有多个访问请求的时候总不能一直连接一直释放吧,这时候就产生了连接池。解决资源频繁分配/释放的问题-》为数据库建立连接池(相当于缓冲区)。

查询完数据库后,如果不关闭连接,而是暂时存放起来,当别人使用时,把这个连接给他们使用。
预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接

在这里插入图片描述
jdbc的数据库连接池使用datasource【数据源】=》是个接口,所有的java数据库连接池都要来实现这个接口。使用连接池来管理数据库连接,以减少连接的创建和销毁开销,提高应用程序的性能和响应速度。
常见的第三方连接池:DBCP,C3P0,Proxool,HikariCP,Druid

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

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

相关文章

什么是公网IP和弹性公网IP

目录 公网IP 弹性公网IP 公网IP 公网IP是由公共网络运营商分配且具有独立性、全球唯一性和全球可达性等特点,可让用户通过互联网与其他用户实现数据交流和信息传递。 用户会使用网站的域名访问网站,而域名会通过DNS域名解析服务解析为公网IP地址&…

本地登陆页面:对本地搜索词进行排名的策略

位置着陆页没有得到足够的尊重。 你用你的姓名、地址、电话号码和工作时间来设置它们。也许您嵌入了用于行车路线的 Google 地图。 也许你写了一些没人会读的副本,如果你有多个位置,你在每一页上重复相同的副本,只是更改位置名称。 如果你…

【Unity6.0+AI】Sentis加载模型识别手写数字案例实现

按照国际惯例,看效果: 素材准备: 自己在PS中绘制黑底白字手写字体,导出jpg,尺寸28*28! 素材设置 基本步骤 准备工作:从 ONNX Model Zoo 下载手写识别 ONNX 模型文件 【下载模型】MNIST 手写数字识别模型 mnist-12.onnx,并将其拖入项目窗口的 Assets 文件夹。 【下载模…

组织框架概念澄清及表设计

组织 企业组织 企业组织就是企业正式编制,以单独的编制,是个人在企业所在的长久的家,类似于所说的考编,在企业体制内的位置,可能一个人在组织有不同的岗位,也可能有不同的项目组,但是&#xf…

百度POI分类 20231227记录

open | 百度地图API SDK (baidu.com) 2023.12.27记录

SpringBoot单点登录认证系统MaxKey(附开源项目地址)

1 项目介绍 MaxKey 单点登录认证系统,谐音马克思的钥匙寓意是最大钥匙,支持 OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM 等标准协议,提供简单、标准、安全和开放的用户身份管理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC 权限管理…

三菱人机交互GT Designer的使用(二,开关,指示灯,数值显示,数值输入)

今天也开始每日一学,内容为开关,指示灯,数值显示,数值输入,以为这篇文章比较长,所有小编决分为3篇内容写完,谢谢大家阅读,不足之处,欢迎指正。 目录 开关 位&#xff0c…

【记录问题排查系列】记录CPU飙高问题排查过程篇(1)

CPU飙高问题排查 ✔️问题排查与解决✔️总结与思考 🍁前段时间我们新上了一个新的应用,因为流量一直不大,集群OPS大概只有5左右,写接口的t在30ms左右。 因为最近接入了新的业务,业务方给出的数据是日常QPS可以达到20…

染色法判定二分图算法总结

知识概览 一个图是二分图当且仅当图中不含奇数环(奇数环是边数为奇数的环)。图中不含奇数环,染色过程中一定没有矛盾。染色法判定二分图算法时间复杂度O(n m)。 例题展示 题目链接 860. 染色法判定二分图 - AcWing题库https://www.acwing.…

django项目中配置debug_toolbar

背景 在django项目中为了好调试本地代码和定位问题,实话说django项目中的有问题提示相当明显,在复杂的项目中,还想查看sql的执行情况和执行过程。debug_toolbar是django项目中值得选择的调试工具。 配置 pip install debug_toolbar 修改s…

机器学习部分相关概念

数据集(Data Set)即数据的集合,每一条单独的数据被称为样本(Sample)。 对于每个样本,它通常具有一些属性(Attribute)或者特征(Feature), 特征所具体取得值被称为特征值(Feature Value)。 西瓜数据集 色泽根蒂纹理青绿稍蜷模糊乌黑蜷缩清晰 …

【JAVA】使用OPENGL

从这个网址下载对应的库: LWJGL - Lightweight Java Game Libraryhttps://www.lwjgl.org/browse/release/3.3.3下载这个压缩包(实际上有很多版本3.3.3是比较新的版本:LWJGL - Lightweight Java Game Library): https…

在ASP.NET MVC下限制同一个IP地址单位时间间隔内的请求次数

在ASP.NET MVC下限制同一个IP地址单位时间间隔内的请求次数 有时候,当用户请求一个Controller下的Action,我们希望,在单位时间间隔内,比如每秒,每分钟,每小时,每天,每星期&#xf…

VS配置PCO相机SDK环境

VS配置PCO相机SDK环境 概述:最近要用到一款PCO相机,需要协调其他部件实现一些独特的功能。因此需要用到PCO相机的SDK,并正确配置环境。良好的环境是成功的一半。其SDK可以在官网下载,选择对应版本的安装即可。这里用的是pco.cpp.1.2.0 Windows,VS 2022 专业版。 链接: P…

软件测试/测试开发丨Pytest学习笔记

Pytest 格式要求 文件: 以 test_ 开头或以 _test 结尾类: 以 Test 开头方法/函数: 以 _test 开头测试类中不可以添加构造函数, 若添加构造函数将导致Pytest无法识别类下的测试方法 断言 与Unittest不同, 在Pytest中我们需要使用python自带的 assert 关键字进行断言 assert…

CGAL中三角形曲面网格近似

1、介绍 此软件包实现了变分形状近似(VSA)方法,通过更简单的表面三角形网格来近似输入表面网格。该算法的输入必须是: 三角形分割;组合2流形 输出是一个三角形汤,可以构建成多边形曲面网格。 给定一个输入曲…

【GNSS】LAMBDA 模糊度搜索 MATLAB 工具箱使用笔记

文章目录 Part.I IntroductionChap.I 传送门Chap.II 工具箱下载 Part.II LAMBDA 3.0 工具箱Chap.I 文件结构Chap.II 简单使用 Part.III Ps-LAMBDA 1.0 工具箱Chap.I 文件结构Chap.II 简单使用 Part.IV 待解决的问题Reference Part.I Introduction 最近进行模糊度搜索方面的研究…

TensorFlow的实战(详细代码)

1 TensorFlow基础 1.1 TensorFlow概要 TensorFlow使用数据流式图规划计算流程,它可以将计算映射到不同的硬件和操作系统平台。 1.2 TensorFlow编程模型简介 TensorFlow中的计算可表示为一个有向图(计算图),其中每个运算操作为一个节点,每个…

黑马头条--day11-kafkaStream热点文章实时计算

目录 一.定时计算与实时计算 二. 实时流式计算 1.概念 2. 应用场景 3.技术方案选型 三. Kafka Stream 1 概述 2.Kafka Streams的关键概念 3. KStream 4. Kafka Stream入门案例编写 5.SpringBoot集成Kafka Stream 四.app端热点文章计算 功能实现 用户行为&#xff…

数据库(Database)基础知识

什么是数据库 数据库是按照数据结构来组织、存储和管理数据的仓库,用户可以通过数据库管理系统对存储的数据进行增删改查操作。 数据库实际上是一个文件集合,本质就是一个文件系统,以文件的方式,将数据保存在电脑上。 什么是数据…