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 分钟前
redisson使用lock导致死锁问题
java·后端·面试
weixin_4786897611 分钟前
操作系统【2】【内存管理】【虚拟内存】【参考小林code】
数据库·nosql
今天背单词了吗98020 分钟前
算法学习笔记:8.Bellman-Ford 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·开发语言·后端·算法·最短路径问题
天天摸鱼的java工程师23 分钟前
使用 Spring Boot 整合高德地图实现路线规划功能
java·后端
东阳马生架构38 分钟前
订单初版—2.生单链路中的技术问题说明文档
java
咖啡啡不加糖1 小时前
暴力破解漏洞与命令执行漏洞
java·后端·web安全
风象南1 小时前
SpringBoot敏感配置项加密与解密实战
java·spring boot·后端
九皇叔叔1 小时前
【7】PostgreSQL 事务
数据库·postgresql
DKPT1 小时前
Java享元模式实现方式与应用场景分析
java·笔记·学习·设计模式·享元模式