【Java】初识JDBC

news2024/9/22 19:41:02

🌺个人主页:Dawn黎明开始

🎀系列专栏:Java
每日一句:向阳而生,逐光而行

📢欢迎大家:关注🔍+点赞👍+评论📝+收藏⭐️


文章目录

📋前言

🔐什么是JDBC

🔑应用程序使用JDBC访问数据库的方式

🔑JDBC驱动程序分类

(1)JDBC-ODBC桥驱动程序

(2)本地API驱动程序

(3)网络协议驱动程序

(4)本地协议驱动

​  📝总结


 

📋前言

      在软件开发过程中,经常要使用数据库存储和管理数据。为了在Java中提供对数据库访问的支持,SUN公司于1996年提供了一套访问数据库的标准Java类库,即JDBC。

🔐什么是JDBC

      JDBC的全称是Java数据库连接(Java Database Connectivity),它是一套用于执行SQL语句的Java API。应用程序可通过这套Java API连接到关系数据库,并使用SQL语句完成对数据库中数据的查询、新增、更新和删除等操作。使用JDBC连接数据库驱动,用户就不必用户不必编写Java程序与数据库交互的底层代码,使得代码的通用性更强。

🔑应用程序使用JDBC访问数据库的方式

🔑JDBC驱动程序分类

      JDBC本身提供的是一套数据库操作标准,而JDBC中提供的这些标准又需要各个数据库厂商实现,针对每一个数据库而言,每一个数据库厂商都会为其数据库产品提供一个JDBC的驱动程序,目前比较常见的JDBC驱动程序可以分为以下4类。

(1)JDBC-ODBC桥驱动程序

      JDBC-ODBC桥驱动程序由SUN公司开发,是JDK提供的数据库操作标准API,这种类型的驱动实际是把所有 JDBC的调用传递给ODBC(Open Database Connectivity,开发数据库连接),再由ODBC调用本地数据库驱动代码,操作数据库中的数据。通过JDBC-ODBC桥驱动操作数据库的方式如下所示:

由于JDBC-ODBC桥驱动程序经过几次中间调用,所以执行效率比较低

(2)本地API驱动程序

      本地API驱动直接将JDBC API 映射成数据库特定的客户端API。这种驱动包含特定数据库的本地API,通过它可以访问数据库的客户端。通过本地API驱动操作数据库的方式如下所示:

通过本地 API驱动程序访问数据库减少了ODBC的调用环节,提高了数据库访问的效率。

(3)网络协议驱动程序

      网络协议驱动是用纯Java语言编写的,JDBC把对数据库的访问请求传递给网络上的中间件服务器,中间件服务器先把请求转换为数据库通信协议请求,然后再通过中间件服务器与数据库进行交互。使用这种类型驱动程序的Java应用程序可以与服务器端完全分离,具有很大的灵活性。通过网络协议驱动操作数据库的方式:

(4)本地协议驱动

      本地协议驱动是用使用纯Java语言编写的。本地协议驱动通常由数据库厂商直接提供驱动的JAR包,本地协议驱动程序直接将JDBC调用转换为数据库特定的网络通信协 议,然后与数据库进行交互。通过本地协议驱动操作数据库的方式:

📝总结

      上述4种类型中,JDBC-ODBC桥驱动程序由于执行效率不高,更适合开发应用时的一种过渡方案; 如果是在内联网(Intranet)的应用,可以考虑本地API 驱动程序;如果是基于互联网(Internet)并且需要同时连接多个不同种类的数据库, 并发连接要求高的应用,可以考虑JDBC-Net Driver。如果是基于互联网(Internet)但连接单一数据库的应用,可以考虑Native Protocol Driver


🌺欢迎大家在评论区进行讨论和指正!

 

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

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

相关文章

【2023 云栖】阿里云刘一鸣:Data+AI 时代大数据平台建设的思考与发布

云布道师 本文根据 2023 云栖大会演讲实录整理而成,演讲信息如下: 演讲人:刘一鸣 | 阿里云自研大数据产品负责人 演讲主题:DataAI 时代大数据平台应该如何建设 今天分享的主题是 DataAI 时代大数据平台应该如何建设&#xff0…

python+django高校科研项目管理系统2u3mx

高校科研项目管理系统采用拟开发的高校科研项目管理系统通过测试,确保在最大负载的情况下稳定运转,各个模块工作正常,具有较高的可用性。系统整体界面简洁美观,用户使用简单,满足用户需要。在因特网发展迅猛的当今社会,高校科研项目管理系统必然会成为在数字信息化建设的一个重…

51单片机应用从零开始(七)·循环语句(if语句,swtich语句)

51单片机应用从零开始(一)-CSDN博客 51单片机应用从零开始(二)-CSDN博客 51单片机应用从零开始(三)-CSDN博客 51单片机应用从零开始(四)-CSDN博客 51单片机应用从零开始(…

【数据结构(C语言)】浅谈栈和队列

目录 文章目录 前言 一、栈 1.1 栈的概念及结构 1.2 栈的实现 1.2.1. 支持动态增长的栈的结构 1.2.2 初始化栈 1.2.3 入栈 1.2.4 出栈 1.2.5 获取栈顶元素 1.2.6 获取栈中有效元素个数 1.2.7 检查栈是否为空 1.2.8 销毁栈 二、队列 2.1 队列的概念及结构 2.2 队…

将 Spring 微服务与 BI 工具集成:最佳实践

软件开发领域是一个不断发展的领域,新的范式和技术不断涌现。其中,微服务架构和商业智能(BI)工具的采用是两项关键进步。随着 Spring Boot 和 Spring Cloud 在构建强大的微服务方面的普及,了解这些微服务如何与 BI 工具…

基于51单片机音乐盒设计( proteus仿真+程序+原理图+PCB+报告+讲解视频)

音乐盒 主要功能:仿真原理图PCB图程序设计:设计报告实物图资料清单(提供资料清单所有文件):资料下载链接: 基于51单片机音乐盒仿真设计( proteus仿真程序原理图PCB报告讲解视频) 仿真图proteus …

在两个java项目中实现Redis的发布订阅模式

如何在两个java项目中实现Redis的发布订阅模式? 1. Redis简介2. 发布订阅模式介绍3. 实现思路4. 代码实现及详细解释4.1. RedisUtil4.2. Publisher4.3. Subscriber4.4. 运行程序 目录: Redis简介发布订阅模式介绍实现思路代码实现及详细解释 1. Redis简…

Ps:参考线

参考线 Guides用于帮助精确地定位图像或元素,显示为浮动在图像上的非打印线,可以移动或移除,还可以临时锁定。 Ps 中的参考线可分为三大类:画布参考线、画板参考线和智能参考线。 可在“首选项/参考线、网格和切片”中设置参考线的…

利用MATLAB进行矩阵运算

一、画出y1/(x3)的函数曲线,x∈[0, 200]。 程序: x0:0.01:200; y(3x).^(-1); plot(x,y) 结果: 二、生成一个信号:xsin(2*pi*t)cos(4*pi*t) 程序: syms t; xsin(2*pi*t).*cos(4*pi*t); fplot(x,[0 pi]); 结果&…

CentOS 7 使用异步网络框架Libevent

CentOS 7 安装Libevent库 libevent github地址:https://github.com/libevent/libevent 步骤1:首先,你需要下载libevent的源代码。你可以从github或者源代码官方网站下载。并上传至/usr/local/source_code/ 步骤2:下载完成后&…

SQL Server 百万数据查询优化技巧三十则

点击上方蓝字关注我 互联网时代的进程越走越深,使用MySQL的人也越来越多,关于MySQL的数据库优化指南很多,而关于SQL SERVER的T-SQL优化指南看上去比较少,近期有学习SQLSERVER的同学问到SQL SERVER数据库有哪些优化建议&#xff1f…

在openSUSE-Leap-15.5-DVD-x86_64中使用deepin-wine-6.0.0.19再使用金山打字通2016

在openSUSE-Leap-15.5-DVD-x86_64中使用deepin-wine-6.0.0.19再使用金山打字通2016 在openSUSE Software官网输入关键字deepin-wine搜索得到fedora-deepin-wine6的作者是xuthus5 https://software.opensuse.org/package/fedora-deepin-wine6 在百度贴吧fedora吧的《fedora下的…

swingbench造数失败可能原因及解决方法

swingbench造数失败解决方法 1.临时表空间文件内存不足,扩展临时表空间文件内存 alter database tempfile/home/oracle/oradata/orcl/temp01.dbf resize 30G;(这里扩展完temp临时表空间后可以造数成功,则不需要扩展soe用户表空间&#xff09…

Dubbo3使用Zookeeper作为注册中心的方案讨论!详解DubboAdmin与PrettyZoo来监控服务的优劣!

文章目录 一:Dubbo注册中心的基本使用 二:Zookeeper注册中心的使用 1:依赖引入 2:实际开发 三:Zookeeper作为注册中心的使用展示 1:启动注册Zookeeper服务 2:引入注册中心 (一)&#xf…

react中的state

没想到hooks中也有state这一说法 看下面的两个案例 1、无state变化不会执行父子函数 2、有state更改执行父子函数

winlogbeat采集windows日志

下载链接 https://www.elastic.co/cn/downloads/past-releases/winlogbeat-7-16-2 配置文件 # ---------------------------- Elasticsearch Output ---------------------------- output.elasticsearch:# Array of hosts to connect to.hosts: ["192.168.227.160:9200&…

『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程

『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程 1 Postman工具简介2 Postman安装3 Postman界面说明4 一个简单请求4.1 请求示例4.2 请求过程 5 Postman其他操作5.1 import5.2 History5.3 Environment5.4 Global5.5 其他变…

HBuilderX前端软件社区+Thinkphp后端源码

HBuilderX前端软件社区thinkphp后端源码,搭建好后台在前端找到 util 这个文件把两个js文件上面的填上自己的域名,登录HBuilderX账号没有账号就注册账号然后上传文件即可。打包选择发行 可以打包app或h5等等 后端设置运行目录为public(重要),…

Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署

1、环境需求 本帖针对的是Linux环境,Windows或其他系统也可借鉴。具体只讲述Jenkins配置以及整个流程的实现。 1.JDK(或JRE)及Java环境变量配置,我用的是JDK1.8.0_144。 2.Jenkins 持续集成和持续交付项目。 3.现有项目及gitla…

【Web】NewStarCTF Week1 个人复现

目录 ①泄露的秘密 ②Begin of Upload ③Begin of HTTP ④ErrorFlask ⑤Begin of PHP ⑥R!C!E! ⑦EasyLogin ①泄露的秘密 盲猜/robots.txt,访问得到flag前半部分 第二个没试出来,老老实实拿dirsearch扫吧 访问/www.zip 下载附件,拿到第二部分…