服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

用jdbc连接数据库(2)


  用jdbc连接数据库(2)

? 数据库的种类

自从pc成为主要的办公室工具,众多的著名数据库都开发了能在pc上运行的版本。它们包括如
microsoft works的基本数据库和如approach、dbase、borland paradox、microsoft access 和
foxbase比较复杂的数据库。

另一类型的pc数据库包括由pc客户端访问服务器端的数据库,其中有ibm db/2、microsoft sql
server、oracle、sybase、sqlbase和xdb。这些数据库产品都支持一些不同的相对简单的sql命令,
而且这些命令似乎都是可以互换的。它们事实上不可互换的原因在于它们是为不同的性能特点所设计
的而且每种都具有不同的用户界面和编程界面。或许你会认为既然它们都支持sql,对它们的编程也
会是及其相似的。但实事正好相反,因为每个数据库都有各自不同的接收sql查询和返回结果的方式。
这也是下一个标准级别odbc出现的原因。

? odbc

如果编写的代码能独立于个别销售商的数据库,而且不用修改便可以从不同的数据库中获得相同的结
果,那将是最理想的。若我们将所有的数据库都做某些封装,使得这些数据库具有相同的编程接口,
上面的要求就很容易实现了。

1992年,microsoft发布了一个名为《对象数据库连接》的规范,这也意味着这一目标的首次实现。
它被用来解决对windows环境下的所有数据库连接的支持。如同所有软件的第一个版本,它也受到了
越来越多的问题的困扰。1994年发行了另一个版本,这一版本相对来说更快且更稳定,而且它也是第
一个32位的版本。另外,odbc开始支持windows以外的其它平台。直到现在,它已流行在pc和工作站
平台上,odbc的驱动程序几乎可以从所有的数据库提供商那里获得。

但是,odbc并非如我们最初想象的如此万能。许多数据库提供商都以一种“替换接口”来支持odbc,
而且用odbc编程的成本也是不低的。它酷似其它的windows编程,包含有句柄、指针和选项,这就使
它很难掌握。odbc不是一种独立控制的标准,它从microsoft产生并由microsoft开发,这个实事使其
未来很难预测。

? 什么是jdbc?

jdbc是曾经是一组首字母缩写(java database connectivity),但现在它已是自己的注册商标符号
。作为一种面向对象的封装和对odbc api的重新设计,它易于掌握而且确实允许你编写独立于提供
商的代码来查询和处理数据库。如同所有的java api,jdbc是面向对象的,它不是一组很高级别的
对象,我们将在这章的剩下部分开发一些级别高一些的方法。

microsoft以外的大多数数据库提供商都拥护jdbc并对他们的数据库提供jdbc驱动程序。这使得编写
完全独立于数据库的代码相当容易。另外,javasoft和intersolv共同开发了一个名为jdbc-odbc
bridge的产品,它可以在没有直接的jdbc驱动程序的情况下与数据库相连。所有支持jdbc的数据库
都至少应支持sql-92标准,只有这样才能在不同的数据库和平台间实现最大程度的可移植性。

? 安装与使用jdbc

jdbc的类在java.sql包中,并随同java jdk 1.1或更高的版本一起安装。但是,如果你想使用
jdbc-odbc bridge,你必须另外两个包。首先,若使用的是windows 95,则你必须将你的odbc驱动程
序升级为32位的版本,这个版本可以从microsoft的主页上下载。在其它站点,这个驱动程序很难找
到。你可以搜寻dataacc.exe文件,下载并安装它。

jdbc-odbc驱动程序可从sun java站点 (http://java.sun.com )处获得,寻找和下载该文件都很
简单。解压缩并安装这个驱动程序后,你还要做以下的事情:

:

将/jdbc-odbc/classes;添加到path环境变量中。
将/jdbc-odbc/classes;添加到classpath环境变量中。
在windows 95下,将其加到autoexec.bat文件中,重启机器使之生效。
在windows nt下,将其添加到控制面板的系统对象的环境标签下,重新登录使之生效
jdbc驱动程序的类型

实际上,有一个java程序有四种方法与一数据库相连
jdbc-odbc bridge和一个odbc驱动程序------在这种情况下,odbc驱动程序和桥代码必须在每
个用户的机器上,所有这是个本地的解决方案,同时也是一种临时的解决方案。
本地代码加java驱动程序------用另外一种本地解决方案代替了odbc和桥:能被java调用的平
台的本地代码。
jdbc-网络纯java驱动程序------java驱动程序将jdbc调用翻译成传输到服务器的一种独立的
协议。服务器可以与许多中数据库中的任何一种相连接。这种方法允许你通过一个用户端的
applet访问服务器并将结果返回给你的applet。在这种情况下,中间件软件提供商可提供服务
器。
本地协议java驱动程序------java驱动程序直接为服务器翻译为某种协议并执行这些调用。这
种方法也可以用于网络并在网络浏览器的applet中显示结果,但每个数据库提供商将提供驱动
程序
i如果你想编写代码来处理dbase、foxbase或access一类的pc客户端数据库,你或许会用到第一中方法
,且在用户的机器上要有所有代码。象ibm的db2这样的大型客户/服务器数据库产品已开始提供第三
级别的驱动程序。

二层和三层模型

若数据库和查询它的应用程序在同一台机器上且没有提交的服务器代码,我们称作为结果的程序为二
层模型。应用程序是其中一层而数据库是另一层。jdbc-odbc bridge系统就是这种类型。

若一个应用程序或applet调用服务器,再由服务器调用数据库,我们称这种方式为三层模型。当有程
序调用服务器时便是这种类型。

(未完待续)

扫描关注微信公众号