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

相关推荐
01传说31 分钟前
vue3 配置安装 pnpm 报错 已解决
java·前端·vue.js·前端框架·npm·node.js
hunzi_11 小时前
搭建商城系统
java·uni-app·php
workflower2 小时前
MDSE和敏捷开发相互矛盾之处:方法论本质的冲突
数据库·软件工程·敏捷流程·极限编程
Boilermaker19922 小时前
【Java EE】Mybatis-Plus
java·开发语言·java-ee
Tony小周2 小时前
实现一个点击输入框可以弹出的数字软键盘控件 qt 5.12
开发语言·数据库·qt
xdscode2 小时前
SpringBoot ThreadLocal 全局动态变量设置
java·spring boot·threadlocal
lifallen2 小时前
Paimon 原子提交实现
java·大数据·数据结构·数据库·后端·算法
丶小鱼丶2 小时前
链表算法之【合并两个有序链表】
java·算法·链表
TDengine (老段)3 小时前
TDengine 数据库建模最佳实践
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
张先shen3 小时前
Elasticsearch RESTful API入门:全文搜索实战(Java版)
java·大数据·elasticsearch·搜索引擎·全文检索·restful