JDBC 初认识、速了解

news2025/4/16 15:44:48

目录

一. JDBC的简介

1. 数据的持久化

2. 什么是JDBC

二. JDBC中常用的类和接口

1. Driver 接口

2. DriverManager 类

3. Connection 接口

4. Statement 接口

5. PreparedStatement接口

6. ResultSet 接口

三. 总结


前言
从现在开始就来讲解JDBC的相关知识了

本文的目的是来大体的了解JDBC以及会用到的类和方法

旨在让读者更好的了解JDBC

个人主页:艺杯羹

一. JDBC的简介

1. 数据的持久化

先讲一个概念,数据的持久化(persistence)
简单来说就是将内存中的数据保存到可永久保存的设备中,例如磁盘
主要应用在将内存中的数据存储在关系型数据库中,也可以存储在磁盘文件、XML数据文件中
关系图如下:

2. 什么是JDBC

JDBC

  1. JDBC(Java DataBase Connectivity)java 数据库连接
  2. JavaEE 平台下的技术规范
  3. 定义了在 Java 语言中连接数据库,执行 SQL 语句的标准 API
  4. 可以为多种关系数据库提供统一访问

数据库驱动程序

  1. 数据库驱动就是直接操作数据库的一个程序
  2. 不同数据库产品的数据库驱动名字有差异
  3. 在程序中需要依赖数据库驱动来完成对数据库的操作

Java中访问数据库技术

  1. 基于JDBC标准访问数据库
  2. 使用第三方ORM 框架,如Hibernate, Mybatis 等访问数据库

当有了JDBC那么java程序就可以通过JDBC,操作各种数据库(MySQL,Oracle,SQLserver等)

二. JDBC中常用的类和接口

先介绍JDBC常用的类和接口,从大体上了解一下

1. Driver 接口

英文意思
driver:驱动程序
从意思就可以看出,这个接口是关于数据库驱动的

Driver 接口的作用是来定义数据库驱动对象应该具备的一些能力
比如与数据库建立连接的方法的定义,该接口是提供给数据库厂商使用的
所有支持 java 语言连接的数据库都实现了该接口,实现该接口的类我们称之为数据库驱动类

2. DriverManager 类

英文意思
Manager:管理
从意思可以看出,这个是关于数据库驱动管理的接口

DriverManager是驱动程序管理器,是负责管理数据库驱动程序的
驱动注册以后,会保存在DriverManager中的已注册列表中
DriverManager 通过实例化的数据库驱动对象,能够建立应用程序与数据库之间建立连接。并返回 Connection 接口类型的数据库连接对象。

  • getConnection(String jdbcUrl, String user, String password)
    该方法通过访问数据库的 url用户名以及密码返回对应的数据库的 Connection 对象
  • JDBC URL
    与数据库连接时,用来连接到指定数据库标识符
    在 URL 中包括了该数据库的类型、 地址、端口、库名称等信息
    注意:不同品牌数据库的连接 URL 不同

先了解一下这个URL的写法,之后会详细讲解的

Connection conn = 
DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");

3. Connection 接口

英文意思
connection:连接
从意思可以看出,这个是连接数据库的接口

Connection 是数据库的连接(会话)对象
对数据库的一切操作都是在这个连接基础之上进行的,我们可以通过该对象执行 sql 语句并返回结果

常用方法

  • createStatement()
    创建向数据库发送 sql 语句的 Statement 接口类型的对象
  • preparedStatement(sql)
    创建向数据库发送预编译 sql 的PrepareSatement 接口类型的对象。
  • setAutoCommit(boolean autoCommit)
    设置事务是否自动提交
  • commit()
    在链接上提交事务
  • rollback()
    在此链接上回滚事务(回滚就是撤销)

4. Statement 接口

一句话:用于执行SQL语句

用于执行静态 SQL 语句并返回它所生成结果的对象。 由 createStatement 创建,用于发送简单的 SQL 语句(不支持动态绑定。字符串里要保存好

常用方法

  • execute( String sql )
    有结果集返回true 没有返回false
    执行参数中的 SQL,返回是否有结果集
  • executeQuery( String sql )
    运行 select 语句,返回 ResultSet 结果集
  • executeUpdate(String sql)
    运行 insert/update/delete(DML操作) 操作,返回更新的行数
  • addBatch(String sql)
    把多条 sql 语句放到一个批处理中
    批量添加
  • executeBatch()
    向数据库发送一批 sql 语句执行

5. PreparedStatement接口

一句话:用来执行SQL语句,和Statement接口类似,但是这个接口能够避免很多问题,所以后期基本上都是用的这个接口

继承自 Statement 接口。PreparedStatement 对象比 Statement 对象的效率更高,由于实现了动态的参数绑定,所以可以防止 SQL 注入(支持动态),所以我们一般都使PreparedStatement
对Statement接口做了一个扩展

常用方法

  • addBatch()
    把当前 sql 语句加入到一个批处理中
  • execute()
    执行当前 SQL,返回个 boolean 值
  • executeUpdate()
    运行 insert/update/delete 操作,返回更新的行数。
  • executeQuery()
    执行当前的查询,返回一个结果集对象
  • setDate(int parameterIndex, Date x)
    向当前SQL语句中的指定位置绑定一个java.sql.Date值
  • setDouble(int parameterIndex, double x)
    向当前 SQL 语句中的指定位置绑定一个 double值
  • setFloat(int parameterIndex, float x)
    向当前 SQL 语句中的指定位置绑定一个 float 值
  • setInt(int parameterIndex, int x)
    向当前 SQL 语句中的指定位置绑定一个 int 值
  • setString(int parameterIndex, String x)
    向当前 SQL 语句中的指定位置绑定一个 String 值

6. ResultSet 接口

ResultSet 用来暂时存放数据库查询操作获得结果集。

注意:这个是表的指针,不是整个结果集的表

常用方法

  • getString(int index) 和 getString(String columnName)
    获得在数据库里是 varchar、char 等类型的数据对象。
  • getFloat(int index)和 getFloat(String columnName)
    获得在数据库里是 Float 类型的数据对象。
  • getDate(int index) 和 getDate(String columnName)
    获得在数据库里是 Date 类型的数据。
  • getBoolean(int index) 和 getBoolean(String columnName)
    获得在数据库里是 Boolean 类型的数据。
  • getObject(int index) 和 getObject(String columnName)
    获取在数据库里任意类型的数据。

三. 总结

这就是JDBC的初认识以及之后会用到的相关的类和方法,希望能够帮助到你😊

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

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

相关文章

(2025亲测可用)Chatbox多端一键配置Claude/GPT/DeepSeek-网页端配置

1. 资源准备 API Key:此项配置填写在一步API官网创建API令牌,一键直达API令牌创建页面创建API令牌步骤请参考API Key的获取和使用API Host:此项配置填写https://yibuapi.com/v1查看支持的模型请参考这篇教程模型在线查询 2. ChatBox网页版配…

4.vtk光照vtkLight

文章目录 VTK中的光照1. vtkLight 的两种类型:位置光照和方向光照2. vtkLight 的常用方法3. 方法命名风格4. vtkProp 的可见性与 vtkLight 的开关 示例 VTK中的光照 vtkLight: 用于定义一个或多个光源。每个光源可以有其颜色、位置、焦点等属性。 vtkActor: 每个vtk…

YOLOv2学习笔记

YOLOv2 背景 YOLOv2是YOLO的第二个版本,其目标是显著提高准确性,同时使其更快 相关改进: 添加了BN层——Batch Norm采用更高分辨率的网络进行分类主干网络的训练 Hi-res classifier去除了全连接层,采用卷积层进行模型的输出&a…

【YOLOv8改进 - 卷积Conv】PConv(Pinwheel-shaped Conv): 风车状卷积用于红外小目标检测, 复现!

YOLOv8目标检测创新改进与实战案例专栏 专栏目录: YOLOv8有效改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例 专栏链接: YOLOv8基础解析+创新改进+实战案例 文章目录 YOLOv8目标检测创新改进与实战案例专栏介绍摘要文章链…

Dockerfile项目实战-单阶段构建Vue2项目

单阶段构建镜像-Vue2项目 1 项目层级目录 以下是项目的基本目录结构: 2 Node版本 博主的Windows电脑安装了v14.18.3的node.js版本,所以直接使用本机电脑生成项目,然后拷到了 Centos 7 里面 # 查看本机node版本 node -v3 创建Vue2项目 …

Zabbix 简介+部署+对接Grafana(详细部署!!)

目录 一.Zabbix简介 1.Zabbix是什么 2.Zabbix工作原理(重点)​ 3.Zabbix 的架构(重点)​ 1.服务端 2.客户端: 4.Zabbix和Prometheus区别 二.Zabbix 部署 1.前期准备 2.安装zabbix软件源和组件 3.安装数据库…

Ubuntu2404装机指南

因为原来的2204升级到2404后直接嘎了,于是要重新装一下Ubuntu2404 Ubuntu系统下载 | Ubuntuhttps://cn.ubuntu.com/download我使用的是balenaEtcher将iso文件烧录进U盘后,使用u盘安装,默认选的英文版本, 安装后,安装…

Spring Cloud初探之使用load balance包做负载均衡(三)

一、背景说明 基于前一篇文章《Spring Cloud初探之nacos服务注册管理(二)》,我们已经将服务注册到nacos。接下来继续分析如何用Spring cloud的load balance做负载均衡。 load balance是客户端负载均衡组件。本质是调用方拿到所有注册的服务实例列表,然…

vector常用的接口和底层

一.vector的构造函数 我们都是只讲常用的。 这四个都是比较常用的。 第一个简单来看就是无参构造,是通过一个无参的对象来对我们的对象进行初始化的,第一个我们常用来当无参构造来使用。 第二个我们常用的就是通过多个相同的数字来初始化一个vector。 像…

【2025年3月中科院1区SCI】Rating entropy等级熵及5种多尺度,特征提取、故障诊断新方法!

引言 2025年3月,研究者在国际机械领域顶级期刊《Mechanical Systems and Signal Processing》(JCR 1区,中科院1区 Top,IF:7.9)上以“Rating entropy and its multivariate version”为题发表科学研究成果。…

【AI学习】李宏毅老师讲AI Agent摘要

在b站听了李宏毅2025最新的AI Agent教程,简单易懂,而且紧跟发展,有大量最新的研究进展。 教程中引用了大量论文,为了方便将来阅读相关论文,进一步深入理解,做了截屏纪录。 同时也做一下分享。 根据经验调整…

Nacos-Controller 2.0:使用 Nacos 高效管理你的 K8s 配置

作者:濯光、翼严 Kubernetes 配置管理的局限 目前,在 Kubernetes 集群中,配置管理主要通过 ConfigMap 和 Secret 来实现。这两种资源允许用户将配置信息通过环境变量或者文件等方式,注入到 Pod 中。尽管 Kubernetes 提供了这些强…

【BUG】Redis RDB快照持久化及写操作禁止问题排查与解决

1 问题描述 在使用Redis 的过程中,遇到如下报错,错误信息是 “MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk...”,记录下问题排查过程。 2 问题排查与解决 该错误提示表明&#…

java分页实例

引言 在现代Web应用和移动应用中,面对大量数据的展示,分页技术成为了提升用户体验和优化数据加载效率的关键手段。尤其是在MySQL数据库环境中,合理运用分页查询不仅能显著减少服务器负载,还能提升数据访问速度,为用户提…

【Linux篇】ELF文件及其加载与动态链接机制

ELF文件及其加载与动态链接机制 一. EFL文件1.1 ELF文件结构二. ELF文件形成与加载2.1 ELF形成可执行2.2 ELF控制性文件的加载2.2.1总结 三. ELF加载与进程地址空间3.1 动态链接与动态库加载3.1.1 进程如何看到动态库 3.2 全局偏移量表GOT(global offset table)3.2.…

经典算法 判断一个图中是否有环

判断一个图中是否有环 问题描述 给一个以0 0结尾的整数对列表,除0 0外的每两个整数表示一条连接了这两个节点的边。假设节点编号不超过100000大于0。你只要判断由这些节点和边构成的图中是否存在环。存在输出YES,不存在输出NO。 输入样例1 6 8 5 3 …

AI与深度伪造技术:如何识别和防范AI生成的假视频和假音频?

引言:深度伪造的崛起 近年来,人工智能技术迅猛发展,其中深度伪造(Deepfake) 技术尤为引人注目。这项技术利用深度学习和神经网络,可以轻松生成高度逼真的假视频和假音频,使人物的面部表情、语音…

ESP32驱动读取ADXL345三轴加速度传感器实时数据

ESP32读取ADXL345三轴加速度传感器实时数据 ADXL345三轴加速度传感器简介ADXL345模块原理图与引脚说明ESP32读取ADXL345程序实验结果 ADXL345三轴加速度传感器简介 ADXL345是一款由Analog Devices公司推出的三轴数字加速度计,分辨率高(13位),测量范围达…

【Linux】系统入门

【Linux】系统初识 起源开源 闭源版本内核内核编号 Linux的安装双系统(不推荐)WindowsLinuxvmware虚拟机vitualbox操作系统的镜像centos 7/ubuntu云服务器租用 Linux的操作lsmkdir 文件名pwdadduser userdel -rrm文件名cat /proc/cpuinfolinux支持编程vim code.c./a.out 运行程…

github配置ssh,全程CV

1)随便找一个文件夹右键进入git bash 2)验证是否已有公私钥文件 cd ~/.ssh ls如果不存在则生成然后获取 生成时一直回车 ssh-keygen -t rsa -C "xxxxxx.com" cd ~/.ssh cat id_rsa.pub如果存在则直接获取 cd ~/.ssh cat id_rsa.pub3)复制 4&#xf…