15.1 JDBC数据库编程1

目录

[15 引言](#15 引言)

[15.1.1 数据库语言SQL](#15.1.1 数据库语言SQL)

[15.2 JDBC体系结构](#15.2 JDBC体系结构)

[15.2.1 JDBC访问数据库](#15.2.1 JDBC访问数据库)

[15.2.2 JDBC API介绍](#15.2.2 JDBC API介绍)


15 引言

数据库系统(database system,DBS)由一个互相关联的数据集合和一组用以访问这些数据的程序组成。这个数据集合通常称为数据库。

数据库管理系统是计算机系统的基础软件,也是一个大型的软件系统。它主要实现对共享数据有效的组织、存储、管理和存取。

15.1.1 数据库语言SQL

SQL(Structured query language)称为结构化查询语言,是每种数据库系统都提供的数据库操作语言。SQL语言可以分成如下几类:

数据库定义语言 (data definition language,DDL):用于定义、修改和删除数据库、模式表、视图、索引等数据库对象 。大多数数据库对象都可以使用CREATE、ALTER和DROP命令创建、修改和删除 。使用DDL语言定义数据库对象时,会将其定义保存在数据字典(或数据目录)中。

数据操纵语言 (data manipulation language,DML ):用于查询、插入、修改和删除 表中记录。查询数据 使用SELECT命令插入数据 使用INSERT命令修改数据 使用UPDATE命令删除数据 使用DELETE命令

数据控制语言(data control language,DCL):用于控制用户访问数据库。最常用的DCL包括GRANT和REVOKE命令 ,它们分别用于授权收回 权限,SavePoint 关键字 用于在数据库事务 中设置一个存储点,在一个较长的事务暂存数据 ,如果在事务末尾执行回滚可选择性回滚到 SavePoint设置的暂存点。

15.2 JDBC体系结构

Java程序通过JDBC访问数据库。JDBC是Java程序访问数据库的标准接口,由一组Java语言编写的类和接口组成,这些类和接口称为JDBC API。JDBC API为Java语言提供一种通用的数据访问接口。

JDBC的基本功能如下:

(1)建立与数据库的连接

(2)发送SQL语句

(3)处理数据库操作结果、

15.2.1 JDBC访问数据库

JDBC应用程序访问数据库的一般过程如图15-2所示。应用程序通过JDBC驱动程序管理器加载相应的驱动程序,通过驱动程序与具体的数据库连接,然后访问数据库。

Java应用程序要成功访问数据库,首先要加载相应的驱动程序。要使驱动程序加载成功,必须安装驱动程序。有的数据库管理系统安装后就安装了JDBC驱动程序 (如Oracle数据库),这是只需将驱动程序文件添加到CLASSPATH环境变量中即可。

对没有提供驱动程序的数据库系统(如MYSQL和PostgreSQL),需要单独下载驱动程序,然后需要在CLASSPATH环境变量中指定该驱动程序文件,这样Java应用程序才能找到其中的驱动程序。

注意:在JavaSE 8中JDBC-ODBC桥驱动程序已被删除,所以不能再使用这种方法连接数据库。

15.2.2 JDBC API介绍

JDBC API 可以访问从关系数据库到电子表格的任何数据源 ,使开发人员可以用纯Java语言编写完整的数据库应用程序、JDBC API已经会成为Java语言的标准API。在Java8中的版本是JDBC4.2.在JDK中是通过java.sql和javax.sql 两个包提供的。

java.sql包提供了为基本的数据库编程服务的类和接口 ,如驱动程序管理的类DriverManager创建数据库连接Connection接口执行SQL语句 以及处理查询结果的类和接口

等。

java.sql包中常用的类和接口之间的关系如上图所示。图中类和接口之间的关系表示通过使用DriverManager类中可以创建Connection连接对象,通过Connection对象可以创建Statement语句对象或PreparedStatement语句对象 ,通过语句对象 可以创建ResultSet结果集对象

javax.sql包主要提供服务器端访问与处理数据源的类和接口,如DataSource、RowSet、RoSetMetaData、PooledConnection接口等。它们可以实现数据源管理、行集管理以及连接池管理等。

相关推荐
代码的小搬运工2 小时前
网络请求(NSURL、NSURLRequest、NSURLSessionDataTask、协议回调与 JSON 数据的基本流向)
网络·数据库·json
Cx330❀8 小时前
【MySQL基础】一文吃透“表的约束”:从 Null/Default 到主外键的终极安全法则
linux·服务器·数据库·c++·mysql·安全
Java搬码工8 小时前
CompletableFuture 完整详解 + 全场景使用案例
java
许心月8 小时前
Java学习资料网站汇总
java
c238568 小时前
第二篇:《测试指挥官:可视化单题自测框架(含 assert 实操)》
java·数据库·c++·算法·安全性测试
我科绝伦(Huanhuan Zhou)8 小时前
MySQL极端场景数据丢失防护:从Crash-Safe到异地备份
数据库·mysql
辞旧 lekkk8 小时前
【Redis初阶】常见数据类型
开发语言·数据库·c++·redis·学习·缓存·bootstrap
帅次9 小时前
Kotlin 与 Java 互操作:混合工程里的平台类型与 API 边界
java·开发语言·kotlin·suspend·nullable
明志数科9 小时前
人形机器人格斗场景下的技术挑战:动力学控制、感知融合与实时决策
网络·数据库
酉鬼女又兒9 小时前
零基础入门 DeepSeek V4 Pro API 开发:从环境搭建、消息格式规范到翻译函数实战、少样本提示、多轮对话聊天机器人与常见报错全流程详解指南
大数据·网络·数据库·人工智能·macos·机器人·github