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接口等。它们可以实现数据源管理、行集管理以及连接池管理等。

相关推荐
时间的拾荒人17 分钟前
Redis 主从复制详解:配置实操 + 原理机制
数据库·redis·面试
隔窗听雨眠1 小时前
MySQL三表JOIN执行内核与优化器决策机制
数据库·mysql·sql优化
budingxiaomoli1 小时前
Spring统一功能处理
java·后端·spring
Decay__2 小时前
SQLServer 索引与 SQL 优化 —— 聚集索引、非聚集索引、覆盖索引、碎片维护与执行计划
运维·数据库·sql·mysql·架构
Flynn Liang3 小时前
可观测性与成本治理:一次对话的 17 个观测点
java·langchain·可观测性·micrometer·langchain4j·token 成本·llm 监控
笃行3503 小时前
【金仓数据库产品体验官】订单增量同步实战:MERGE、OUTPUT 与 IDENTITY 的兼容验证
数据库
金銀銅鐵3 小时前
带您看懂字节码指令(三):同一行加法,为什么有四种指令
java·jvm
星恒随风6 小时前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql
文丑颜不良啊7 小时前
LeetCode2821~2840题目解析
java·leetcode
无奈笑天下7 小时前
银河麒麟上lsblk命令教程详解
linux·运维·服务器·数据库