1. JDBC 概述
Java 数据库编程是建立在 JDBC 基础上的。JDBC(Java Database Connectivity,Java 数据库连接)是一种可用于执行 SQL 语句的 Java API,是由一些 Java 语言编写的类和接口组成的,其重要作用是建立与数据库系统的连接并发送 SQL 语句到相应的关系型数据库及处理数据库返回的结果。
1.1 JDBC API
JDBC API 的核心类和接口主要包含在 java.sql 包中,定义在 java.sql 包中用于访问并处理存储在数据库中数据的主要类和接口及其功能说明如下所示:
JDBC API 是专为 Java 语言数据库应用程序所设计的,Java 语言数据库应用程序通过 JDBC API 的调用来发送 SQL 语句,JDBC 驱动程序完成 SQL 语句的解释和对数据库的数据存取操作,并将数据结果返回数据库应用程序。
使用 JDBC API 的 Java 数据库应用程序对数据库操作的主要流程是 加载 和 管理数据库驱动程序(DriverManager)、连接数据库(Connection)、执行 SQL 语句(Statement)、返回结果(ResultSet)等,数据库应用程序与数据库的通信层次关系如 图1 所示
目前大多数数据库的操作都是使用 SQL 命令,Java 语句并不能直接操作数据库,JDBC API 实现了 Java 应用程序与数据库沟通的作用,它在 Java 应用程序和数据库之间建立了一个桥梁。
1.2 JDBC 的组成
JDBC API 由通用的 JDBC 驱动程序管理器、驱动程序、连接器、执行 SQL 命令的语句和操作数据库数据等几部分组成。驱动程序管理器负责装载和管理各个数据库软件商提供的正确的数据库驱动程序,即将 Java 语言应用程序连接到正确的 JDBC 驱动程序上,驱动程序负责定位并存取数据库数据(访问数据库),连接库负责 Java 语言应用程序同数据库的连接,交互连接信息。
JDBC 包含两部分与数据库独立的 API :一个是面向程序开发人员的 JDBC API;另一个是面向底层的 JDBC Driver API(驱动API)。Java 语言程序通过 JDBC API 访问不同的 JDBC 驱动程序,从而实现对不同数据库系统的访问。
目前 JDBC 驱动程序有以下四种类型:
-
本地纯 Java 驱动程序
本地纯 Java 驱动程序将 JDBC API 调用直接转换为数据库管理系统(DBMS)所使用的网络协议,它允许数据库应用程序从客户端上直接调用在 DBMS 服务器上的数据库,一般用于网络并在客户端上显示结果。 -
JDBC 网络纯 Java 驱动程序
JDBC 网络纯 Java 驱动程序将 JDBC 转换为与 DBMS 无关的网络协议,这种协议又被 DBMS 网络服务器转换为一种 DBMS 协议,它能够将纯 Java 客户机连接到多种不同的数据库上,该驱动程序允许通过一个客户端的数据库应用程序访问服务器并将结果返回。 -
本地 Java 编写的驱动程序
本地 Java 编写的驱动程序把客户机 API 上的 JDBC 调用转换为 Oracle、SQL server、MySQL等 DBMS 的调用。该驱动程序是本地机上能被 Java 语言程序调用的本地代码,它替换了原有的开发数据库应用程序时使用的 ODBC 桥。 -
JDBC-ODBC 桥及加载 ODBC 驱动程序
JDBC-ODBC 桥利用 ODBC 驱动程序提供 JDBC 访问方式,该驱动程序适合于现在已有的通过 ODBC 驱动程序访问数据库的系统,它在 ODBC 和 JDBC 之间搭建一个桥梁,以便 Java 语言程序访问配有 ODBC 驱动程序的数据库,该驱动程序可以应用于本地或网络数据库应用系统。
在 JDBC 发布之前,微软公司发布的 ODBC 被广泛的用于数据库的访问,ODBC 技术为异质数据库的访问提供一个统一的接口,并作为访问数据库的标准,各种计算机语言的数据库应用程序通过 ODBC 建立的桥梁实现对数据库的访问。Java 语言程序也可以通过 ODBC 访问数据库,只是需要建立 JDBC-ODBC 组合桥梁实现对数据库额访问。
1.3 JDBC 的任务
JDBC 的主要任务是将 Java 数据库应用程序同数据库建立一个标准连接,即在 Java 应用程序和数据库之间建立一种通信协议,JDBC 驱动程序为应用程序向数据库发送 SQL 语句,请求操作数据库数据,同时又对来自数据库的数据进行分析或翻译等处理,并将数据返回给 Java 数据库应用程序。JDBC 是 Java 数据库应用程序和数据库之间的桥梁,所以,JDBC 也被称为 JDBC 桥。
JDBC 所起的作用是一种用来在相关或不相关的 DBMS 中存取数据的标准 Java 应用程序数据接口。在 JDBC 中包含了许多 API,这些 API 可以执行一般的 SQL 语句、动态 SQL 语句及带 IN 和 OUT 参数的对数据库的存储过程语句,它使 Java 数据库应用程序可以存取保存在多种不同数据库管理系统(DBMS)中的数据,而不论每个 DBMS 使用了何种数据存储格式和编程接口。因此,JDBC API 是 Java 数据库应用程序的基础,它建立了 Java 应用程序同各种不同数据库之间的沟通机制。
总而言之,JDBC API 主要完成如下三项任务:
(1)通过连接器与数据库建立连接。
(2)发送 SQL 语句请求操作数据库。
(3)处理数据库返回结果。