Java 学习之路 之 JDBC基础(五十)

Java JDBC 编程入门
本文介绍了Java数据库连接(JDBC)的基本概念及其重要性。通过JDBC,Java程序能够跨平台地操作各种主流数据库。文章详细阐述了JDBC的工作原理、连接数据库的步骤以及执行SQL语句的方法。此外,还探讨了不同类型的JDBC驱动程序及其适用场景。

我们将跳过 Java 的 AWT 编程和 Swing 编程。因为现在 C\S 模式,很少使用 Java 去做 PC 客户端。以后我们将会学习到 Android 编程,利用 Java 和 XML 去做手机客户端。(此处不会 讲 Android 编程,我们得先学好 Java 基础。)下面我们介绍 Java 的 JDBC 编程。

通过使用 JDBC API,Java 程序可以非常方便地操作各种主流数据库,这是 Java 语言的巨大魅力所在。且由于 Java 语言的跨平台特性,所以使用 JDBC API 所编写的程序不仅可以实现跨数据库,还可以跨平台,县有非常优秀的可移植性。

程序使用 JDBC API 以统一的方式来连接不同的数据库,然后通过 Statement 对象来执行标准的 SQL 语句,并可以获得 SQL 语句访问数据库的结果,因此掌握标准的 SQL 语句是学习 JDBC 编程的基础。我们将会简要介绍关系数据库理论基础,并以 MySQL 数据库为例来讲解标准的 SQL 语句的语法细节,包括基本查询语句、多表连接查询和子查询等。

将重点介绍 JDBC 连接数据库的详细步骤,并讲解使用 JDBC 执行 SQL 语句的各种方式,包括使用 CallableStatement 调用存储过程等。本章还会介绍 ResultSetMetaData、DatabaseMetaData 两个接口的用法。事务也是数据库编程中的重要概念,不仅会介绍标准 SQL 语句中的事务控制语句,而且会讲解如何利用 JDBC API 进行事务控制。

JDBC 的全称是 Java Database Connectivity,即 Java 数据库连接,它是一种可以执行 SQL 语句的 Java API。程序可通过 JDBC API 连接到关系数据库,并使用结构化查询语(SQL,数据库标准的查询语言)来完成对数据库的查询、更新。

与其他数据库编程环境相比,JDBC 为数据库开发提供了标准的 API,所以使用 JDBC 开发的数据库应用可以跨平台运行,而且可以跨数据库(如果全部使用标准的 SQL)。也就是说,如果使用 JDBC 开发一个数据库应用,则该应用既可以在 Windows 平台上运行,也可以在 UNIX 等其他平台上运行;既可以使用 MySQL 数据库,也可以使用 Oracle 等数据库,而程序无须进行任何修改。

1,JDBC 简介

通过使用 JDBC,就可以使用同一种 API 访问不同的数据库系统。换言之,有了 JDBC API,就不必为访问 Sybase 数据库学习一组 API,为访问 Oracle 数据库又学习一组 API......开发人员面向 JDBC API 编写应用程序,然后根据不同的数据库,使用不同的数据库驱动程序即可。

最早的时候,Sun 公司希望自己开发一组 Java API,程序员通过这组 Java API 即可操作所有的数据库系统,但后来 Sun 发现这个目标具有不可实现性一一因为数据库系统太多了,而且各数据库系统的内部特性又各不相同,后来 Sun 就制定了一组标准的 API,它们只是接口,没有提供实现类——这些实现类由各数据库厂商提供实现,这些实现类就是驱动程序。而程序员使用 JDBC 时只要面向标准的 JDBC API 编程即可,当需要在数据库之间切换时,只要更换不同的实现类(即更换数据库驱动程序)就行,这是面向接口编程的典型应用。

Java 语言的各种跨平台特性,都采用相似的结构,因为它们都需要让相同的程序在不同的平台上运行,所以都需要中间的转换程序(为了实现 Java 程序的跨平台性,Java 为不同的操作系统提供了不同的虚拟机)。同样,为了使 JDBC 程序可以跨平台,则需要不同的数据库厂商提供相应的驱动程序。图 13.1 显示了 JDBC 驱动示意图。


正是通过 JDBC 驱动的转换,才使得使用相同 JDBC API 编写的程序,在不同的数据库系统上运行良好。Sun 提供的 JDBC 可以完成以下三个基本工作。

(1)与数据库建立连接。

(2)执行 SQL 语句。

(3)获得 SQL 语句的执行结果。

通过 JDBC 的这三个功能,应用程序就可以使用 JDBC 来操作数据库系统了。

2,JDBC 驱动程序

数据库驱动程序是 JDBC 程序和数据库之间的转换层,数据库驱动程序负责将 JDBC 调用映射成特定的数据库调用。图 13.2 显示了 JDBC 示意图。


大部分数据库系统,例如 Oracle 和 Sybase 等,都有相应的 JDBC 驱动程序,当需要连接某个特定的数据库肘,必须有相应的数据库驱动程序。但对于一些特殊的数据库,例如 Access,可能只能使用 JDBC-ODBC 桥进行访问。

ODBC 的全称是 Open Database Connectivity,即开放数据库连接。ODBC 和 JDBC 很像,严格地说,应该说 JDBC 模仿了 ODBC 的设计。ODBC 也允许应用程序通过一组通用的 API 访问不同的数据库管理系统,从而使得基于 ODBC 的应用程序可以在不同的数据库之间切换。同样,ODBC 也需要各数据库厂商提供相应的驱动程序,而 ODBC 则负责管理这些驱动程序。

总体来说,JDBC 驱动通常有如下4种类型。

第1种 JDBC 驱动:称为 JDBC-ODBC 桥,这种驱动是最早实现的 JDBC 驱动程序,主要目的是为了快速推广 JDBC。这种驱动将 JDBC API 映射到 ODBC API。JDBC-ODBC 也需要驱动,这种驱动由 Sun 公司提供实现。

第2种 JDBC 驱动:直接将 JDBC API 映射成数据库特定的客户端 API。这种驱动包含特定数据库的本地代码,用于访问特定数据库的客户端。

第3种 JDBC 驱动:支持三层结构的 JDBC 访问方式,主要用于 Applet 阶段,通过 Applet 访问数据库。

第4种 JDBC 驱动:是纯 Java 的,直接与数据库实例交互。这种驱动是智能的,它知道数据库使用的底层协议。这种驱动是目前最流行的 JDBC 驱动。

Sun 公司提供的 JDBC-ODBC 桥驱动程序不是多线程的。也就是说,不适合在要求并发访问数据库的情况下使用。其固有的性能和扩展能力非常有限,因此,在企业级的应用中不应该使用该类型的链接。

通常建议选择第 4 种 JDBC 驱动,这种驱动避开了本地代码,减少了应用开发的复杂性,也减少了产生冲突和出错的可能。如果对性能有严格的要求,则可以考虑使用第 2 种 JDBC 驱动,但使用这种驱动,则势必增加编码和维护的困难。

相对于 ODBC 而言,JDBC 更加简单。总结起来,JDBC 比 ODBC 多了如下几个优势。

ODBC 更复杂,ODBC 中有几个命令需要配置很多复杂的选项,而 JDBC 则采用简单、直观的方式来管理数据库连接。

JDBC 比 ODBC 安全性更高,更易部署。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值