初始 JDBC

news/2024/7/7 19:45:07

初始 JDBC

在这里插入图片描述


每博一文案

不要让你的焦虑,拖累你的人生,不知从何时起,焦虑挤进了你的人生,你被他困扰,每天莫名
悲伤,抑郁寡欢,你对生活一筹莫展,仿佛做什么都失去了兴趣。
因为孩子的成长,学习焦虑,忧愁着他的顽皮和不懂事;因为与爱人的相处焦虑,生怕她渐渐不再爱你;
你为工作上的成果焦虑,极力想要获得别人的认可。但是焦虑,并不能改变现状,它只会拖垮你的身体,忽略你的
人生,但其实只要做出一点改变。
你就能克服焦虑,别给自己设立太多的目标,因为一旦做得不够好,你就会陷入焦虑的漩涡。
做什么事,都要循序渐进,一步一个脚印才更加稳妥。
经常给自己一些心理暗示,在完成一些小事或工作后,小小的奖励一下自己,从而获得更多的满足感。
之后的生活中就会更有动力,不要把自己关起来,偶尔出去走走,看看外面的世界,感受一下生命的蓬勃星空,
大脑的思绪,做一些让自己开心和放松的事情和朋友聊聊天,或许你会发现,困扰你的东西其实根本不算什么大事。
前路坎坷,愿你能在焦虑的波涛中化险为夷,活出快意的人生。
                                                 ——————   一禅心灵庙语

文章目录

  • 初始 JDBC
    • 每博一文案
    • 1. JDBC概述
    • 2. 数据的持久化
    • 3. JDBC 的说明
    • 4. JDBC 的体系结构
    • 5. 最后:

1. JDBC概述

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。

2. 数据的持久化

所谓的数据持久化 就是把数据永久的保存到我们的磁盘当中,防止因为掉电而丢失了数据 。我们知道在现在的大数据时代,数据是非常重要的资源 ,为了防止数据的丢失,都会将我们的数据 "固化"到物理的磁盘当中,永久保存起来。保护我们的数据资源。而想要很好的处理我们的数据,就需要通过 关系数据库 来完成。比如:MySQL,Oracle…等等

Java当中的数据存储技术

在Java当中,我们的数据库存取技术可以分为如下三种:

  • 使用 JDBC 直接访问数据库
  • 使用 JDO(Java Data Object) 技术
  • 第三方的 O/R 工具 ,比如 Hibernate,Mybatis

在这三者中,JDBC 是 Java 访问数据库的最基本的基石 ,另外的 JDO,Hibernate,Mybatis 等只是对 JDBC做了进一步的加工封装更多的功能实现

3. JDBC 的说明

  • JDBC 是什么 ?

JDBC (Java Database Connectivity) 是一个 独立于特定数据库管理系统,通用的SQL数据库存取和操作的公共接口 (一组API) ,定义了,用来访问数据库的标准 java类库(java.sql,javax.sql),使用这些类库,可以以一种标准规范的方式,方便快捷的访问操作数据库中的资源。

JDBC 是为了访问不同的数据库提供了一种 统一的途径 ,让Java程序员,不需要关心,数据库厂家是如何实现的Java连接数据库的,这些细节问题。而是面向接口编程,面向抽象编程,不要面向具体编程 。从而大大简化和加快了Java程序员的开发效率,减轻了,Java程序员的负担,保护了Java程序员的发量。


  • JDBC 的本质是什么 ?

JDBCSUN 公司制定的一套用户数据库操作的接口,Java程序员只需要面向这套接口编程即可。面向接口调用用,面向接口写实现类,这都属于面向接口编程。

不同的数据库厂商,需要针对这套接口,提供不同的实现,不同的实现的集合,即为不同数据库的驱动。

————面向接口编程


  • 为什么要 面向接口编程 ?

解耦合: 降低程序的耦合度,提高程序的扩展力

多态机制就是非常典型的:面向抽象编程(不要面向具体编程)

如下例子:

建议的编程:

Animal animal = new Cat();
Animal animal = new Dog();  // 面向父类编程,父类引用子类
public void feed(Animal animal) {
    
}

不建议的编程: 固化了,写的太固定化了。

Dog dog = new Dog();
Cat cat = new Cat();
public void feed(Dog dog) {
    
}

public void feed(Cat cat) {
    
}

  • 为什么 SUN 制定一套 JDBC 接口 ?

因为每一个数据库厂家的数据库底层实现的原理都是不一样的。Oracle 数据库有自已的一套实现原理;Mysql数据库有自己的一套实现原理;SQL Server 数据库有自己的一套实现原理。

每一个数据库厂商都有自己独特的实现原理 ,如果我们没有 JDBC 这个接口,我们就需要对不同的数据库厂商做不同的数据库连接的代码,以及操作数据库代码实现,比如:Oracle 我们需要自己实现一套独特连接上Oracle数据库的代码,以及操作Oracle 数据库的代码,Mysql 我们又需要自己实现一套独特的可以连接上 Mysql 数据库的代码,以及操作Mysql数据库的代码…,每连接一个不同的数据库,我们就需要使用不同的独特的连接方式,这样对Java程序员的负担太大了,以及兼容性,延展性太差了。具体如下图所示:

在这里插入图片描述


而我们一旦有了JDBC 这个中间交互的接口,我们就可以方便多了,具体如下图所示

在这里插入图片描述


  • 各大数据库厂家会老老实实的实现有关 JDBC 接口 吗 ?

答案:是会的,因为如果数据库厂家不实现有关 JDBC 接口类的话,那我们Java就无法连接上他的数据库,,那他就会失去我们Java程序员这个庞大的用户群体,Java程序员有多少,他们会放弃这个庞大的资源吗 ,答案是当然不会的了。所以数据库厂家是一定会老老实实的实现该 JDBC 接口。


4. JDBC 的体系结构

JDBC 接口 (API) 包括两个层次

  • 面向应用的API: Java API ,抽象接口,供应用程序开发人员使用(连接数据库,执行SQL语句,获得结果)
  • 面向数据库的API: Java Driver API ,供开发商开发数据库驱动程序用。

有关Java初步连接数据库的步骤大家可以移步至:🔜🔜🔜


5. 最后:

限于自身水平,其中存在的错误,希望大家给予指教,韩星点兵——多多益善,谢谢大家,后会有期,江湖再见 !!!


在这里插入图片描述


http://lihuaxi.xjx100.cn/news/94318.html

相关文章

基于 OpenMLDB 的联邦学习方案被国际数据挖掘学术会议 CIKM 录取

本周,数据挖掘领域的国际顶级学术会议 CIKM 2022 (https://www.cikm2022.org/) 正在美国亚特兰大举行。由第四范式和新加坡国立大学合作的论文 “A System for Time Series Feature Extraction in Federated Learning” 被 CIKM 录取。 该论文主要描述了基于 OpenM…

【附源码】计算机毕业设计SSM实验室安全准入考试系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Java RMI详解

转自: Java RMI详解 下文笔者讲述RMI详解说明,如下所示 Java RMI简介说明 Java远程方法调用即Java RMI(Java Remote Method Invocation)是Java编程语言里一种用于实现远程过程调用的应用程序编程接口当客户机上运行的程序可以调用远程服务器上的对象远程方法调用特性使Java编…

数说故事2022年中国预制菜行业趋势及营销创新洞察报告

近年来,预制菜已经走入中国消费者的餐桌。一方面,不少经典大菜都能在家里轻松制作,以“30分钟一桌菜”“让厨房小白秒变厨神”为招牌的预制菜产业发展迅猛。另一方面,以90后中青年群体为代表的社会中坚力量崛起,需要兼…

Docker环境下使用docker-compose一键式搭建RocketMQ(4.5.0版本)集群及其管理工具(外网版)

前言 本节内容延续前期博客内容,使用docker-compose一键式搭建docker环境下的RocketMQ集群及其管理工具,实现rocketmq在docker环境容器外部访问。特别说明,内网版的RocketMQ集群只能实现docker环境内部访问,并不适用于测试使用&a…

【面经】长安新能源大数据开发一二面面经

欢迎点击此处关注公众号,每天分享大数据开发面经。 一面 一面 HR 面,20 min。 自我介绍 实习项目 学校项目 对新能源车的看法 对大数据在新能源车领域的看法 个人优点 个人缺点 为什么投递我们公司 反问 二面 二面技术面,20 min…

232 node 项目部署流程

1.打开宝塔商店,应用搜索pm2,下方安装,完成后点击设置 2. 3.选择node版本切换版本14.20.1或者更高 4. 5.创建文件目录,命名随意,上传pdftool工具包,cd 到改目录下,终端输入npm install 服务器…

glTexStorage2D 详解

glTexStorage* 为指定的纹理创建固定存储。也就是分配的存储空间不可改变,这样就可以让纹理对象停止跟踪纹理的某些方面。 而纹理中的内容可以使用glTexSubImage* 来改变。glTexStorage2D申请的纹理空间,可在后续glTexSubImage2D分割多个使用 glGenTex…