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

news2025/1/14 19:40:53

在这里插入图片描述
在这里插入图片描述
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

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

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

相关文章

产品管理-学习笔记-版本的划分

版本号说明【X.Y.Z_修饰词】 版本号定义原则X表示大版本号,一般当产品出现重大更新、调整、不再向后兼容的情况时我们会在X上加1Y表示功能更新,在产品原有的基础上增加、修改部分功能,且并不影响产品的整体流程或业务Z表示小修改&#xff0c…

Illustrator脚本 #015 自动角线

这是一个在画板上自动生成辅助线和角线的脚本,只要单击最右边按钮运行脚本即可。 绿色的为参考线及出血线。 #target "Illustrator" var settings = {addTrim : true,addBleedGuide : true,addCenterGuide : true,addCover : false,overlapAlert : false,trimma…

联营商自述被坑惨,加盟库迪没有未来?

撰稿 | 多客 来源 | 贝多财经 近日,库迪联营商在社交平台不约而同发出了致库迪咖啡管理层的公开信,两封公开信可谓字字珠玑,没有一句废话,揭开了库迪咖啡在细节、运营、扩张、培训等方方面面的“背后真相”。 两封公开信 折射库…

【PowerMockito:编写单元测试过程中采用when打桩失效的问题】

问题描述 正如上图所示,采用when打桩了,但是,实际执行的时候还是返回null。 解决方案 打桩时直接用any() 但是这样可能出现一个mybatisplus的异常,所以在测试类中需要加入以下代码片段: Beforepublic void setUp() …

如何积极管理日内伦敦银交易?

伦敦银日内交易要做得好,积极的管理是很重要的。不要小看管理这个因素,在日内这种短线交易中,它能对交易结果产生决定性的影响。晚走几秒钟,市场可能就由涨转跌了,投资者就可能由盈转亏了。下面我们就来具体地讨论一下…

Java——值得收藏的Java final修饰符总结!!!

Java final修饰符总结 一、final修饰类二、final修饰方法三、final修饰变量 总结 算下刚转Java到现在也有三个多月了,所以打算对Java的知识进行汇总一下,本篇文章介绍一下Java的final修饰符的作用,final表示最后的、最终的含义,fi…

专题四:前缀和

前缀和 一.一维前缀和(模板):1.思路一:暴力解法2.思路二:前缀和思路 二. 二维前缀和(模板):1.思路一:构造前缀和数组 三.寻找数组的中心下标:1.思路一:前缀和 四.除自身以外数组的乘积&#xff…

java设计模式学习之【备忘录模式】

文章目录 引言备忘录模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用备忘录示例代码地址 引言 想象一下,你正在编辑一篇重要的文档,突然你意识到最近的一些更改实际上破坏了文档的结构。幸运的是,你的文本编辑器允许你撤…

Java的maven

一.概念: 是一款用于管理和构建java项目的工具 作用: 方便项目的依赖管理 统一项目的结构,方便程序员开发及维护 提供了一套标准的项目构建流程,方便编译和构建 二.仓库类型: 本地仓库>自己计算机上的一个目录 中央仓库>由Maven团队维护的全球唯一的。…

两个小妙招,给win to go添加PE,Windows去除快捷方式小箭头

两个小妙招,给win to go添加PE,Windows去除快捷方式小箭头。 一个超级简单的给wintogo添加PE的方法。我的wintogo是UEFIMBR,VHDX(此方法同样适合于传统模式) 第一步,找到一个把维护工具集成在wim里的pe,这…

C#集合类型总结和性能分析

C#集合类型总结和性能分析 文章引用C#集合类型概述各集合类底层接口关系图泛型与非泛型集合分析具体接口/类分析CollectionBase/DictionaryBase的目的IEnumerator/IEnumerable/IEnumerable<T>ICollection<T>和ICollectionIList和IListIReadOnlyList<T>IDicti…

腾讯云服务器怎么买划算?腾讯云服务器新用户优惠购买攻略

腾讯云轻量应用服务器购买指南&#xff0c;有两个入口&#xff0c;一个是在特价活动上购买&#xff0c;一个是在轻量应用服务器官方页面购买&#xff0c;特价活动上购买价格更便宜&#xff0c;轻量2核2G3M带宽服务器62元一年起&#xff0c;阿腾云atengyun.com分享腾讯云轻量应用…

Python入门知识点分享——(十一)if条件语句

if条件语句是一种编程语言中用于控制程序流程的结构。它根据一个条件的真假来决定执行不同的代码块。 if条件语句通常由if关键字、一个条件表达式和一个代码块组成。条件表达式可以是一个返回布尔值的表达式&#xff0c;如果条件为真&#xff0c;则执行代码块中的代码&#xf…

《MySQL》事务篇

事务特性 ACID Atomicity原子性&#xff1a;事务中的操作要么全部完成&#xff0c;要么全部失败。 Consistency一致性&#xff1a;事务操作前后&#xff0c;数据满足完整性约束。 Isolation隔离性&#xff1a;允许并发执行事务&#xff0c;每个事务都有自己的数据空间&…

【算法刷题】Day26

文章目录 1. 买卖股票的最佳时机含冷冻期题干&#xff1a;算法原理&#xff1a;1. 状态表示&#xff1a;2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 代码&#xff1a; 2. 替换所有的问号题干&#xff1a;算法原理&#xff1a;代码&#xff1a; 1. 买卖股票的最佳时机含冷冻…

web3方向产品调研

每次互联网形态的改变&#xff0c;都会对世界产生很大的影响&#xff0c;上一次对社会产生重大影响的互联网形态&#xff08;Web2.0&#xff09;催生了一批改变人类生活和信息交互方式的企业。 目录 概述DAO是什么&#xff1f;为什么我们需要DAO? 金融服务金融桥接及周边服务D…

在uniapp中使用背景渐变色与背景图不生效问题

list上有文字详情以及背景图&#xff0c;从背景可以看出是渐变色和 背景图片的结合。 因为使用到渐变色&#xff0c;所以要结合 background-blend-mode 属性来实现与背景图片叠加显示&#xff0c;否则只通过 background: linear-gradient(); background-image: url(); 设置不会…

申请sectigo和certum的IP证书注意事项

IP数字证书可以为只有公网IP地址的站点提供网站传输信息加密服务&#xff0c;一方面可以消除用户在浏览器访问网站时的“不安全”提示&#xff0c;另一方面现在主流浏览器会优先收录安装了数字证书的网站&#xff0c;为公网IP地址网站安装IP证书有利于提升网站SEO&#xff08;搜…

openGauss学习笔记-175 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作示例

文章目录 openGauss学习笔记-175 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作示例175.1 相同表的INSERT和DELETE并发175.2 相同表的并发INSERT175.3 相同表的并发UPDATE175.4 数据导入和查询的并发 openGauss学习笔记-175 openGauss 数据库运维-备份与恢复-导入…

oracle下载

前言&#xff1a; 官网上提供都是最新的什么19c 21c这些版本&#xff0c;我要的是 11g 12c 或者更老的 8i 9i 这些版本。 准备下载一个oracle12c 版本&#xff0c;但是找了很久&#xff0c;最终…详情请看下面 oracle 数据库版本介绍 Oracle数据库有多个长期支持版本&#x…