什么是J D B C

 

对于JDBC相信大家都不陌生,甚至编程初学者也对此有所了解,但是你真的了解吗?还是当有人问到JDBC的时候,含糊的解释一番呢?如果还没有彻底了解JDBC的话,那就把这篇文章看完,相信对你很有帮助。

JDBC 是一种用于执行SQL 语句的Java API,它由一组用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 将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有Wi n d o w sMacintosh UNIX 等各种不同的操作系统)。随着越来越多的程序员开始使用Java 编程语言,对从Java 中便捷地访问数据库的要求也在日益增加。

MIS 管理员们都喜欢Java JDBC 的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是存储在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务, Java JDBC 可为外部客户提供获取信息的更新更好方法。

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()) {

int x = rs.getInt("a");

String s = rs.getString("b");

float f = rs.getFloat("c");

}

2. JDBC 是一种低级API ,是高级API 的基础

JDBC 是个”低级”接口,就是说,它用于直接调用SQL 命令。在这方面它的功能极佳,

并比其他的数据库连接API更易于使用,但它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。高级接口是”对用户友好的”接口,它使用的是一种更易理解和更为方便的A P I,这种API 在幕后被转换为诸如JDBC 这样的低级接口。在编写本文时,正在开发两种基于JDBC 的高级API

一种是用于Java 的嵌入式SQL。至少已经有一个提供者计划编写它。DBMS 实现SQL:一

种专门设计来与数据库联合使用的语言。JDBC 要求SQL 语句必须作为String 传给Java 方法。相反,嵌入式SQL 预处理器允许程序员将SQL 语句直接与Java 混在一起使用。例如,可在SQL 语句中使用Java 变量,用以接受或提供SQL 值。然后,嵌入式SQL 预处理器将通过JDBC 调用把这种Java/SQL 的混合物转换为Java。另一种关系数据库表到Java 类的直接映射。Java Soft 和其他提供者都声称要实现该API。在这种“对象/关系”映射中,表中的每行对应于类的一个实例,而每列的值对应于该实例的一个属性。于是,程序员可直接对Java 对象进行操作;存取数据所需的SQL 调用将在”掩盖下”自动生成。此外还可提供更复杂的映射,例如将多个表中的行结合进一个Java 类中。随着人们对JDBC 的兴趣日益浓厚,越来越多的开发人员一直在使用基于JDBC 的工具,以使程序的编写更加容易。程序员也一直在编写力图使最终用户对数据库的访问变得更为简单的应用程序。例如,应用程序可提供一个选择数据库任务的菜单。任务被选定后,应用程序将给出提示及空白供填写执行选定任务所需的信息。所需信息输入后,应用程序将自动调用所需的SQL 命令。在这样一种程序的协助下,即使用户根本不懂SQL 的语法,也可以执行数据库任务。

 

3. JDBC ODBC 和其他API 的比较

目前,ODBC(开放式数据库连接)API 可能是使用最广的、用于访问关系数

据库的编程接口。它能在几乎所有平台上连接几乎所有的数据库。为什么Java 不使用

ODBC?对这个问题的回答是: Java 可以使用O D B C,但最好是在JDBC 的帮助下以JDBC - ODBC桥的形式使用,这一点稍后再讲解。现在的问题已变成:”为什么需要JDBC”? 回答如下:

ODBC 不适合直接在Java 中使用,因为它使用C 语言接口。从Java 调用本地C 代码在安

全性、实现性、坚固性和程序的自动移植性方面都有许多缺点。

ODBC C API Java API 的字面翻译是不可取的。例如, Java 没有指针,而ODBC 却对

指针用得很广泛(包括很容易出错的指针“void *”)。你可以将JDBC 想像成被转换为面向对象接口的O D B C,而面向对象的接口对Java 程序员来说较易于接收。ODBC 很难学。它把简单和高级功能混在一起,而且即使对于简单的查询,其选项也极为复杂。相反, JDBC 尽量保证简单功能的简便性,而同时在必要时允许使用高级功能。启用”纯Java “机制需要像JDBC 这样的Java API。如果使用O D B C,就必须手工地将ODBC 驱动程序管理器和驱动程序安装在每台客户机上。如果完全用Java 编写JDBC 驱动程序,则JDBC 代码在所有Java 平台上(从网络计算机到大型机)都可以自动安装、移植并保证安全性。

 

总之,JDBC API 对于基本的SQL 抽象和概念是一种自然的Java 接口。它建立在ODBC 上,

而不是从零开始。因此,熟悉ODBC 的程序员将发现JDBC 很容易使用。JDBC 保留了O D B C

的基本设计特征;事实上,两种接口都基于X/Open SQL CLI(调用级接口)。它们之间最大的区别在于:JDBC Java 风格与优点为基础并进行优化,因此更加易于使用。

 

最近,Microsoft 又引进了ODBC 之外的新A P IR D OADO OLE DB。这些设计在许

多方面与JDBC 是相同的,即它们都是面向对象的数据库接口且基于可在ODBC 上实现的类。

但在这些接口中,未看见有特别的功能使我们要转而选择它们来替代O D B C,尤其是在O D B C驱动程序已建立起较为完善的市场的情况下。它们最多也就是在ODBC 上加了一种装饰而已。这并不是说JDBC 不需要从其最初的版本再发展了;然而,我们觉得大部份的新功能应归入诸如对象/关系映射和嵌入式SQL 这样的高级A P I

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值