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

相关推荐
一 乐14 分钟前
美食分享|基于Springboot和vue的地方美食分享网站系统设计与实现(源码+数据库+文档)
java·vue.js·spring boot·论文·毕设·美食·地方美食分享网站系统
boonya20 分钟前
MySQL与PostgreSQL核心区别对比
数据库·mysql·postgresql
MuMuMu#22 分钟前
Spring Cloud Gateway基础复习
java·运维·学习
波波烤鸭29 分钟前
深入理解 Gateway 网关:原理、源码解析与最佳实践
java·spring·gateway
FenceRain39 分钟前
EasyExcel 实现国际化导入导出
java·spring boot·easyexcel
Leslie_Lei40 分钟前
【Eclipse】eclipse打开git拉取的项目
java·git·eclipse
li357440 分钟前
Spring Boot 中 StringRedisTemplate 与 RedisTemplate 的区别与使用陷阱(附 getBean 为何报错
java·spring boot·后端
AD钙奶-lalala1 小时前
RabbitMQ的核心使用示例
java·rabbitmq·java-rabbitmq
心之伊始1 小时前
Spring Cloud Gateway:构建智能API网关的终极指南
java·spring
a587691 小时前
Spring Cloud Gateway:下一代API网关的深度解析与实战指南
java·分布式·网关