JDBC 初认识、速了解

简介: JDBC(Java Database Connectivity)是Java访问关系型数据库的标准API,提供统一接口实现跨数据库操作。核心组件包括DriverManager、Connection、Statement/PreparedStatement和ResultSet,支持SQL执行与结果处理,是Java后端开发必备基础技术。

前言
从现在开始就来讲解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的初认识以及之后会用到的相关的类和方法,希望能够帮助到你😊

目录
相关文章
|
2月前
|
NoSQL 前端开发 安全
零成本邮件验证码全链路拆解,附最新 QQ 邮箱 SMTP 授权码完整步骤
本文详解个人项目“词帆CiFan”中邮件验证码功能的完整实现:选用QQ邮箱SMTP零成本方案,涵盖密码重置与账号注销两大核心场景,包含前后端链路设计、Redis降级容错、安全配置避坑(如授权码获取、端口选择、环境变量保护)及AI辅助开发技巧。
211 0
零成本邮件验证码全链路拆解,附最新 QQ 邮箱 SMTP 授权码完整步骤
|
2月前
|
人工智能 自然语言处理 Linux
Claude Code 实现 Computer Use:让 AI 操控你的 Windows 电脑(MCP 平替方案)
本文介绍如何用开源Windows Control MCP插件,让Claude Code(无需Pro订阅)实现99%官方Computer Use功能:鼠标控制、键盘输入、截图等。仅需两行命令,兼容VS Code与CLI,专为国内用户优化,全免费、全可用。
335 0
|
3月前
|
人工智能
Qwen3.8抢先体验!正式版即将发布并开源!
千问Qwen3.8即将开源,参数达2.4T,进化速度以“天”计,实力媲美Fable 5。预览版Qwen3.8-Max已上线阿里Token Plan等平台,限时优惠:日间Credits低至1折,夜间更优,个人/团队版月付仅35元起!
4958 157
|
2月前
|
人工智能 JSON 自然语言处理
Vibe Coding实战:从零构建网页3D交互角色
本文详解Vibe Coding(氛围编程)在网页3D开发中的实践:以“2D→3D→网页”标准化流程为核心,结合腾讯混元3D生成高质量可动画模型,再用Three.js嵌入GLB文件实现交互式渲染,并提供完整代码、提示词模板及八大常见坑点解决方案,助力零基础快速落地3D网页应用。
254 0
Vibe Coding实战:从零构建网页3D交互角色
|
2月前
|
存储 C语言
二级C语言题解:整数序列奇偶个数、拼接数字字符、数组取偶数并加小数点
本文详解C语言三道经典编程题:①统计整数序列中奇偶数个数并返回结构体;②提取字符串中数字字符拼接成整数;③筛选数组偶数并按原序拼接为“数字.”格式字符串。含完整代码、填空/修改/设计解析及易错点提醒。
93 1
二级C语言题解:整数序列奇偶个数、拼接数字字符、数组取偶数并加小数点
|
2月前
|
前端开发 Java 测试技术
Maven 之工程构建与依赖管理全攻略
本文系统讲解Maven核心知识:涵盖POM/JAR/WAR工程类型与标准目录结构;详解构建生命周期(validate→compile→test→package→install→deploy)及常用命令;深入解析本地/远程/中央仓库机制,并指导配置本地仓库路径、阿里云镜像及JDK版本。内容精炼实用,助开发者快速掌握Maven项目管理精髓。
137 1
Maven 之工程构建与依赖管理全攻略
|
2月前
|
存储 算法 区块链
Web3与分布式账本全解析:从班长账本丢包、非对称加密到数据主权回归
本文以“班级记账”为喻,通俗解析Web2中心化与Web3分布式架构的本质差异,深入浅出阐释非对称加密、共识机制、智能合约三大核心技术,揭示数据主权如何从平台回归用户,助力理解去中心化信任的底层逻辑。
133 2
|
2月前
|
SQL 关系型数据库 MySQL
数据库表的三种关系,通俗易懂的讲解
本文通俗讲解数据库表的三种核心关系:一对多(如班级与学生)、一对一(加唯一约束的一对多)、多对多(需中间表实现)。含定义、约束规则、SQL示例及图解,助初学者快速掌握关系建模要点。
904 2
数据库表的三种关系,通俗易懂的讲解
|
2月前
|
人工智能 前端开发 安全
词帆 CiFan:基于故事分级阅读与 AI 伴学的英语学习平台
词帆(CiFan)是面向乡村儿童与外语初学者的公益AI伴学平台,基于GGU分级阅读体系,提供极轻量Web端体验。支持点击查词、AI长难句大白话解析、趣味串词故事生成、艾宾浩斯复习及多模态学习统计,适配低配设备
139 3
词帆 CiFan:基于故事分级阅读与 AI 伴学的英语学习平台
|
2月前
|
存储 安全 JavaScript
外卖平台上的XSS与CSRF攻防全解析:从一次弹窗到百万蠕虫
本文以一次搜索框弹窗事故为引,系统剖析Web安全核心攻击链:从反射型XSS(用户输入未过滤→恶意脚本执行),到Cookie窃取与CSRF身份盗用,再到存储型XSS(评论区持久化攻击),最终演变为Samy蠕虫的指数级传播。涵盖原理、案例、对比及HTTPOnly、CSP、CSRF Token等实用防御方案。(239字)
295 5
外卖平台上的XSS与CSRF攻防全解析:从一次弹窗到百万蠕虫

热门文章

最新文章