JDBC是一种可用于执行SQL语句的JavaAPI(ApplicationProgrammingInterface应用程序设计接口)。它由一些Java
语言编写的类和界面组成。JDBC为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,
使开发人员可以用纯Java语言编写完整的数据库应用程序。
一、ODBC到JDBC的发展历程
说到JDBC,很轻易让人联想到另一个十分熟悉的字眼“ODBC”。它们之间有没有联系呢?假如有,那么它们之间又是
怎样的关系呢?
ODBC是OpenDatabaseConnectivity的英文简写。它是一种用来在相关或不相关的数据库治理系统(DBMS)中存取数据
的,用C语言实现的,标准应用程序数据接口。通过ODBCAPI,应用程序可以存取保存在多种不同数据库治理系统(DBMS)
中的数据,而不论每个DBMS使用了何种数据存储格式和编程接口。
1.ODBC的结构模型
ODBC的结构包括四个主要部分:应用程序接口、驱动器治理器、数据库驱动器和数据源。
应用程序接口:屏蔽不同的ODBC数据库驱动器之间函数调用的差别,为用户提供统一的SQL编程接口。
驱动器治理器:为应用程序装载数据库驱动器。
数据库驱动器:实现ODBC的函数调用,提供对特定数据源的SQL请求。假如需要,数据库驱动器将修改应用程序的请
求,使得请求符合相关的DBMS所支持的文法。
数据源:由用户想要存取的数据以及与它相关的操作系统、DBMS和用于访问DBMS的网络平台组成。
虽然ODBC驱动器治理器的主要目的是加载数据库驱动器,以便ODBC函数调用,但是数据库驱动器本身也执行ODBC函数
调用,并与数据库相互配合。因此当应用系统发出调用与数据源进行连接时,数据库驱动器能治理通信协议。当建立起与
数据源的连接时,数据库驱动器便能处理应用系统向DBMS发出的请求,对分析或发自数据源的设计进行必要的翻译,并将
结果返回给应用系统。
2.JDBC的诞生
自从Java语言于1995年5月正式公布以来,Java风靡全球。出现大量的用java语言编写的程序,其中也包括数据库应
用程序。由于没有一个Java语言的API,编程人员不得不在Java程序中加入C语言的ODBC函数调用。这就使很多Java的优秀
特性无法充分发挥,比如平台无关性、面向对象特性等。随着越来越多的编程人员对Java语言的日益喜爱,越来越多的公
司在Java程序开发上投入的精力日益增加,对java语言接口的访问数据库的API的要求越来越强烈。也由于ODBC的有其不足
之处,比如它并不轻易使用,没有面向对象的特性等等,SUN公司决定开发一Java语言为接口的数据库应用程序开发接口。
在JDK1.x版本中,JDBC只是一个可选部件,到了JDK1.1公布时,SQL类包(也就是JDBCAPI)就成为Java语言的标准部
件。
二、JDBC技术概述
JDBC是一种可用于执行SQL语句的JavaAPI(ApplicationProgrammingInterface,应用程序设计接口)。它由一些
Java语言写的类、界面组成。JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接
口,使开发人员可以用纯Java语言编写完整的数据库应用程序。
通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。也就是说,开发人员可以不必写一个
程序访问Sybase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQLServer。用JDBC写的程序能够自动地将SQL
语句传送给相应的数据库治理系统(DBMS)。不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不
必在不同的平台上编写不同的应用。Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“WriteOnce,
RunEverywhere!”
Java具有健壮、安全、易用等特性,而且支持自动网上下载,本质上是一种很好的数据库应用的编程语言。它所需要
的是Java应用如何同各种各样的数据库连接,JDBC正是实现这种连接的要害。
JDBC扩展了Java的能力,如使用Java和JDBCAPI就可以公布一个Web页,页中带有能访问远端数据库的Ap?plet。或者
企业可以通过JDBC让全部的职工(他们可以使用不同的操作系统,如Windwos,Machintosh和UNIX)在In?tranet上连接到
几个全球数据库上,而这几个全球数据库可以是不相同的。随着越来越多的程序开发人员使用Java语言,对Java访问数据
库易操作性的需求越来越强烈。
MIS治理人员喜欢Java和JDBC,因为这样可以更轻易经济地公布信息。各种已经安装在数据库中的事务处理都将继续
正常运行,甚至这些事务处理是存储在不同的数据库治理系统中;而对新的数据库应用来说,开发时间将缩短,安装和版
本升级将大大简化。程序员可以编写或改写一个程序,然后将它放在服务器上,而每个用户都可以访问服务器得到最新的
版本。对于信息服务行业,Java和JDBC提供了一种很好的向外界用户更新信息的方法。
1.JDBC的任务
简单地说,JDBC能完成下列三件事:
1)同一个数据库建立连接;
2)向数据库发送SQL语句;
3)处理数据库返回的结果。
2.JDBC?一种底层的API
JDBC是一种底层API,这意味着它将直接调用SQL命令。JDBC完全胜任这个任务,而且比其他数据库互联更加轻易实
现。同时它也是构造高层API和数据库开发工具的基础。高层API和数据库开发工具应该是用户界面更加友好,使用更加方
便,更易于理解的。但所有这样的API将最终被翻译为象JDBC这样的底层API。目前两种基于JDBC的高层API正处在开发阶
段。
1)SQL语言嵌入Java的预处理器。虽然DBMS已经实现了SQL查询,但JDBC要求SQL语句被当作字符串参数传送给Java程
序。而嵌入式SQL预处理器答应程序员将SQL语句混用:Java变量可以在SQL语句中使用,来接收或提供数值。然后SQL的预
处理器将把这种Java/SQL混用的程序翻译成带有JDBCAPI的Java程序。
2)实现从关系数据库到Java类的直接映射。Javasoft和其他公司已经公布要实现这一技术。在这种“对象/关系”
映射中,表的每一行都将变成这类的一个实例,每一列的值对应实例的一个属性。程序员可以直接操作Java的对象;而存
取所需要的SQL调用将在内部直接产生。还可以实现更加复杂的映射,比如多张表的行在一个Java的类中实现。
随着大家对JDBC爱好的不断浓厚,越来越多的开发人员已经开始利用JDBC为基础的工具进行开发。这使开发工作变得
轻易。同时,程序员也正在开发对最终用户来说访问数据库更加轻易的应用程序