Java 数据库接口 JDBC 入门基础讲座
Java 爱好者 http://www.javafan.net 制作
Java 数据库接口
JDBC 入门基础讲座
来自:天极网
内容简介:
JDBC 是 Sun 提供的一套数据库编程接口 API 函数,由 Java 语言编写的类、界面组
成。用 JDBC 写的程序能够自动地将 SQL 语句传送给相应的数据库管理系统。不但如此,
使用 Java 编写的应用程序可以在任何支持 Java 的平台上运行,不必在不同的平台上编
写不同的应用。Java 和 JDBC 的结合可以让开发人员在开发数据库应用程序时真正实现
“WriteOnce,RunEverywhere!”
注:
本教程来源于互联网,版权归原作者和出版商所有,仅供个人学习、参考之用,请勿保
存、转载发布、以及用于商业用途,请支持正版。
Java 数据库接口 JDBC 入门基础讲座
Java 爱好者 http://www.javafan.net 制作
第一讲 慨述
概述
1.1 什么是 JDBCTM?
JDBCTM 是一种用于执行 SQL 语句的 JavaTM API(有意思的是,JDBC 本身是个商标名而不是
一个缩写字;然而,JDBC 常被认为是代表 “Java 数据库连接 (Java Database Connectivity)”)。
它由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的
API,使他们能够用纯 Java API 来编写数据库应用程序。
有了 JDBC,向各种关系数据库发送 SQL 语句就是一件很容易的事。换言之,有了 JDBC API,
就不必为访问 Sybase 数据库专门写一个程序,为访问 Oracle 数据库又专门写一个程序,为访问
Informix 数据库又写另一个程序,等等。您只需用 JDBC API 写一个程序就够了,它可向相应数据
库发送 SQL 语句。而且,使用 Java 编程语言编写的应用程序,就无须去忧虑要为不同的平台编写
不同的应用程序。将 Java 和 JDBC 结合起来将使程序员只须写一遍程序就可让它在任何平台上运
行。
Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用
程序的杰出语言。所需要的只是 Java 应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正
是作为此种用途的机制。
JDBC 扩展了 Java 的功能。例如,用 Java 和 JDBC API 可以发布含有 applet 的网页,而该
applet 使用的信息可能来自远程数据库。企业也可以用 JDBC 通过 Intranet 将所有职员连到一个
或多个内部数据库中(即拐庑┲霸彼 玫募扑慊 ?Windows、 Macintosh 和 UNIX 等各种不同的操
Java 数据库接口 JDBC 入门基础讲座
Java 爱好者 http://www.javafan.net 制作
作系统)。随着越来越多的程序员开始使用 Java 编程语言,对从 Java 中便捷地访问数据库的要
求也在日益增加。
MIS 管理员们都喜欢 Java 和 JDBC 的结合,因为它使信息传播变得容易和经济。企业可继续
使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。
新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,
然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务,
Java 和 JDBC 可为外部客户提供获取信息更新的更好方法。
1.1.1 JDBC 的用途是什么?
简单地说,JDBC 可做三件事:
与数据库建立连接,
发送 SQL 语句,
处理结果。
下列代码段给出了以上三步的基本示例:
Connection con = DriverManager.getConnection ("jdbc:odbc:wombat", "login", "password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next())
System.out.println(rs.getString("a") + " " + rs.getString("b") + " " + rs.getString("c"));
Java 数据库接口 JDBC 入门基础讲座
Java 爱好者 http://www.javafan.net 制作
1.1.2 JDBC 是一种低级 API ,是高级 API 的基础
JDBC 是个“低级”接口,也就是说,它用于直接调用 SQL 命令。在这方面它的功能极佳,并
比其它的数据库连接 API 易于使用,但 它 同时也被设计为一种基础接口,在 它之上可以建立高级接
口和工具。
高级接口是“对用户友好的”接口,它使用的是一种更易理解和更为方便的 API,这种 API 在
幕后被转换为诸如 JDBC 这样的低级接口。在编写本文时,正在开发两种基于 JDBC 的高级 API:
一种用于 Java 的嵌入式 SQL。至少已经有一个提供者计划编写它。DBMS 实现 SQL:一种专门
设计来与数据库联合使用的语言。JDBC 要求 SQL 语句必须作为 String 传给 Java 方法。相反,
嵌入式 SQL 预处理器允许程序员将 SQL 语句直接与 Java 混在一起使用。例如,可在 SQL 语句中
使用 Java 变量,用以接受或提供 SQL 值。然后,嵌入式 SQL 预处理器将通过 JDBC 调用把这种
Java/SQL 的混合物转换为 Java。关系数据库表到 Java 类的直接映射。JavaSoft 和其它提供者都
声称要实现该 API。在这种“对象/关系”映射中,表中的每行对应于类的一个实例,而每列的值对
应于该实例的一个属性。于是,程序员可直接对 Java 对象进行操作;存取 数据所需的 SQL 调用将
在“掩盖下”自动生成。此外还可提供更复杂的映射,例如将多个表中的行结合进一个 Java 类中。
随着人们对 JDBC 的兴趣日益增涨,越来越多的开发人员一直在使用基于 JDBC 的工具,以使
程序的编写更加容易。程序员也一直在编写力图使最终用户对数据库的访问变得更为简单的应用程
序。例如,应用程序可提供一个选择数据库任务的菜单。任务被选定后,应用程序将给出提示及空
白供填写执行选定任务所需的信息。所需信息输入后,应用程序将自动调用所需的 SQL 命令。在这
样一种程序的协助下,即使用户根本不懂 SQL 的语法,也可以执行数据库任务。
1.1.3 JDBC 与 ODBC 和其它 API 的比较
目前,Microsoft 的 ODBC(开放式数据库连接)API 可能是使用最广的、用于访问关系数据库
的编程接口。它能在几乎所有平台上连接几乎所有的数据库。为什么 Java 不使用 ODBC?
Java 数据库接口 JDBC 入门基础讲座
Java 爱好者 http://www.javafan.net 制作
对这个问题的回答是:Java 可以使用 ODBC,但最好是在 JDBC 的帮助下以 JDBC-ODBC 桥的形
式使用,这一点我们稍后再说。现在的问题已变成:“为什么需要 JDBC”? 回答如下:ODBC 不适
合直接在 Java 中使用,因为它使用 C 语言接口。从 Java 调用本地 C 代码在安全性、实现、坚
固性和程序的自动移植性方面都有许多缺点。
从 ODBC API 到 Java API 的字面翻译是不可取的。例如,Java 没有指针,而 ODBC 却对指针
用得很广泛(包括很容易出错的指针 "void *")。您可以将 JDBC 想象成被转换为面向对象接口的
ODBC,而面向对象的接口对 Java 程序员来说较易于接收。ODBC 很难学。它把简单和高级功能混在
一起,而且即使对于简单的查询,其选项也极为复杂。相反,JDBC 尽量保证简单功能的简便性,而
同时在必要时允许使用高级功能。启用“纯 Java ”机制需要象 JDBC 这样的 Java API。如果使用
ODBC,就必须手动地将 ODBC 驱动程序管理器和驱动程序安装在每台客户机上。如 果 完 全 用 Java 编
写 JDBC 驱动程序则 JDBC 代码在所有 Java 平台上(从网络计算机到大型机)都可以自动安装、
移植并保证安全性。
总之,JDBC API 对于基本的 SQL 抽象和概念是一种自然的 Java 接口。它建立在 ODBC 上而
不是从零开始。因此,熟悉 ODBC 的程序员将发现 JDBC 很容易使用。JDBC 保留了 ODBC 的基本设
计特征;事 实上,两种接口都基于 X/Open SQL CLI(调用级接口)。它们之间最大的区别在于:JDBC
以 Java 风格与优点为基础并进行优化,因此更加易于使用。
最近,Microsoft 又引进了 ODBC 之外的新 API: RDO、 ADO 和 OLE DB。这些设计在许多方
面与 JDBC 是相同的,即它们都是面向对象的数据库接口且基于可在 ODBC 上实现的类。但在这些
接口中,我们未看见有特别的功能使我们要转而选择它们来替代 ODBC,尤其是在 ODBC 驱动程序已
建立起较为完善的市场的情况下。它们最多也就是在 ODBC 上加了一种装饰而已。这并不是说 JDBC
不需要从其最初的版本再发展了;然而,我们觉得大部份的新功能应归入诸如前一节中所述的对象/
关系映射和嵌入式 SQL 这样的高级 API。