如果要单步调试并运行本书中包括的许多数据库教程, 你需要安装如下软件组件:
? JBuilder、J D B C与J D B C - O D B C桥
? JBuilder范例文件
? Local InterBase Server
如果你有J B u i l d e r的企业版本,还可以安装:
? I n t e r C l i e n t。I n t e r C l i e n t是用于I n t e r B a s e的一个纯Java JDBC驱动程序。它可用于S o l a r i s、H P - U X、Windows NT以及Windows 95。关于更多的信息,参见3 . 4节“使用I n t e r C l i e n t”。
3.1 安装JBuiIder、JDBC与JDBC-ODBC桥
当安装J B u i l d e r时,选择Ty p i c a l选项。如果是选择C u s t o m选项,你应该选择下列选项:
? 程序文件?本选项包括安装J B u i I d e r、J D B C、J D B C - O D B C桥,以及J B u i l d e r范例文件。
? 范例文件?本选项安装数据集教程与国际化演示应用程序。
? 参考应用程序?本选项安装基本的C l i ff h a n g e r应用程序。要运行这个应用程序,需要J D B C - O D B C桥和Local InterBase Server。J a v a S o f t与数据库和数据库工具供应商合作创建了独立于D B M S的A P I。像O D B C一样(大致与微软的J D B C产品等价),J D B C是基于X/Open SQL调用级接口(Call LevelInterface, CLI)。J D B C和O D B C之间的一些差别是:
? J D B C是真正跨平台的纯J a v a的A P I。O D B C是必须本地执行的一个C语言接口,且大多数执行代码仅仅在微软平台上运行。
? 大多数O D B C驱动程序要求在客户机工作站上安装一套复杂的代码模块和注册设置。而J D B C是可以直接从一个本地或集中的远程服务器执行的纯J a v a代码。J D B C的维护和分发比O D B C更简单。根据J a v a s o f t的网站信息, J D B C被O r a c l e、S y b a s e、I n f o r m i x、I n t e r B a s e, D B 2等主流数据库、连接与工具供应商所认可。包括B o r l a n d在内的若干供应商都有J D B C驱动程序。现存的O D B C驱动程序可以通过J a v a S o f t提供的J D B C - O D B C桥而使用。使用J D B C - O D B C桥不是一个理想的解决方案,因为它要求安装O D B C驱动程序和注册项。O D B C驱动程序也可本地执行,但这损害了跨平台的支持和a p p l e t小程序的安全。
3.1.1 安装JDBC和JDBC-ODBC桥
JBuilder DataExpress 组件使用J a v a S o f t数据库连接( J D B C )应用程序程序员接口(Application Programmer Interface, API) 来执行。为了创建一个J a v a数据应用程序,在可以开始创建数据应用程序以前, J a v a S o f t的JDBC sql包必须可以使用。如果你与你的数据库服务器的连接是通过一个O D B C驱动程序进行的,那么你还需要J a v a S o f t的J D B C - O D B C桥软件。安装过程负责把这些东西放到正确的地方。安装程序的J D B C部分从 j a v a l i b 目录中的c l a s s e s . z i p文件中的j a v a . s q l包来安装类。
安装程序的J D B C - O D B C桥部分在同一c l a s s e s . z i p文件中安装J D B C - O D B C桥类。J d b c o O d b c . d l l文件安装到 j a v a b i n目录中。若要获取关于J D B C 或J D B C - O D B C桥的更多信息,请访问JDBC Database A c c e s s (数据库存取) API的网页,网址为h t t p : / / w w w. j a v a s o f t . c o m / j d b c /。
3.1.2 连接到数据库
你可以把J B u i l d e r应用程序连接到远程或本地的S Q L数据库,或其他的B o r l a n d应用程序,如C + + B u i l d e r,D e l p h i,I n t r a B u i l d e r,P a r a d o x,或Visual dBASE 创建的数据库。如果要这样做,则查看你的应用程序连接到的基础数据库,并判断此数据库是本地的还是远程的( S Q L )数据库。为了连接到一个远程的S Q L数据库,你需要下列驱动程序之一:
? 像I n t e r C l i e n t一样的,一个可用于服务器上的纯J a v a的J D B C驱动程序。J B u i l d e r的一些版本包含J D B C驱动程序。查看B o r l a n d网页( h t t p:/ / w w w. b o r l a n d . c o m / j b u i l d e r / ),可获取在J B u i l d e r各版本中可使用的J D B C驱动程序,或与你的服务器软件公司的技术支持部门联系,可获取可用的JDBC驱动程序。
? 一个有JDBC - O D B C桥软件的用于服务器上的基于O D B C的驱动程序。注意O D B C驱动程序是不可移植的D L L(动态连接库)。对于本地开发它是足够的,但是对于applet或其他的纯Java解决方案却不行。连接到本地非S Q L数据库如P a r a d o x或Visual dBASE的两个选项是:
? 使用Data Migration Wi z a r d (数据迁移向导)把数据移动到I n t e r B a s e或另外一个所支持的数据库。若需要使用Data Migration Wi z a r d的信息,参见1 7 . 4节“在数据
库之间移动数据”。
? 连同J D B C - O D B C桥软件一起,使用一个适合于正存取的表类型和级别的O D B C驱动程序。如果连接到J D B C数据库时遇到任何问题,参见3 . 5节“教程中J D B C数据库连接的
故障诊断”。
3.2 安装JBuilder范例文件
JBu i l d e r范例目录包含本书中提供的各种各样的教程和实例。J B u i l d e r的典型安装选项把范例文件缺省安装到s a m p l e s c o m b o r l a n d s a m p l e s d x目录中。你也可以在C u s t o m安装中选择范例文件选项来安装范例文件。数据库范例应用程序使用Local InterBase Server提供的范例数据。
3.3 安装Local InterBase服务器
安装J B u i l d e r后,安装Local InterBase。安装Local InterBase在你的本地机器上既安装I n t e r B a s e客户机也安装I n t e r B a s e服务器。下列步骤提供了数据库教程中所有教程所要求的配置信息。
1) 从JBuilder CD上运行i n s t a l l . e x e,并选择Local InterBase。记下证书I D以及证书密钥号码。你以后将需要他们。
2) 单击N e x t从I n t e r B a s e服务器安装(Interbase Server Setup)对话框移开, 建议你在运行安装前退出所有的Wi n d o w s程序。
3) 阅读安装信息,并单击N e x t继续。
4) 阅读许可协议,并单击Ye s按钮。
5) 输入你的Software Activation Certificate( 软件激活证书) I D和证书密钥。单击N e x t继续。
6) 把I n t e r B a s e安装到安装程序指定的缺省目录,正如在Local InterBase install.txt中推荐的那样。单击i n s t a l l安装所有的组件。
7) 关于停止I n t e r B a s e服务器的信息,参见3 . 3 . 2节“停止I n t e r B a s e服务器”。为了完成数据库教程,I n t e r B a s e必须运行服务器。
8) 重启计算机。I n t e r B a s e服务器在启动时运行。
当安装完成时,必须创建一个O D B C数据源来使用数据库教程。为了创建O D B C数据源(使用Windows NT):
1) 从控制面板,选择O D B C。
2) 从O D B C数据源管理器对话框,选择System DSN页。
3) 单击A d d按钮添加一个数据源。
4) 从驱动程序列表中选择I N T E R S O LV InterBase ODBC Driver(*.gdb)。按F i n i s h按钮。
5) 在ODBC InterBase Driver Setup( 驱动程序安装)对话框中,输入“ D a t a S e t Tu t o r i a l”作为数据源名。单击O K关闭安装对话框。
6) 单击C o n f i g u r e (配置)按钮。
7) 在InterBase ODBC Configuration (配置) 对话框中输入下列数值来使用数据库
8 第一部分开发数据库应用程序下载
教程:
对于此选项做的选择
Data Source Name DataSet Tu t o r i a lD e s c r i p t i o n 可选。此项可以空白Network Protocol < l o c a l >
D a t a b a s e 从你的I n t e r B a s e目录,输入到e m p l o y e e数据库e m p l o y e e . g d b的路径;这个文件的缺省位置是c:Program FilesInterBasec o r p I n t e r B a s e E x a m p l e s d a t a b a s e e m p l o y e e . g d b U s e r n a m e S Y S D B AP a s s w o r d m a s t e r k e y
8) 单击Test Connection(测试连接) 确保参数正确。I n t e r B a s e服务器必须运行,以使连接成功。你可以从程序组启动I n t e r B a s e服务器。
9) 单击O K关闭配置对话框。
10) 单击O K关闭管理器。
3.3.1 启动InterBase服务器
缺省情况下, I n t e r B a s e服务器和I n t e r B a s e监护器将在Wi n d o w s启动时运行。若要改变为手动启动,则从I n t e r B a s e 程序组选择I n t e r B a s e 配置工具( I n t e r B a s eConfiguration To o l),改变Startup Mode启动模式)为(Manual Startup手动启动)。
3.3.2 停止InterBase服务器
不管I n t e r B a s e是在Wi n d o w s启动时自动运行,还是从程序组手动启动它,它都将作为后台服务运行。若要停止I n t e r B a s e服务器运行,1) 从控制面板选择S e r v i c e s (服务)。2) 从S e r v i c e s列表中选择I n t e r B a s e服务器。3) 单击S t o p (停止)按钮。
3.3.3 使用InterBase的技巧
? I n t e r B a s e的范例数据库被安装程序安装。你也许想要复制e m p l o y e e . g d b范例数据库,以便能在试验数据库编程以后能很容易地恢复文件到原始状态。
? 这些范例数据库在数据值上加上了许多约束,这在实际应用程序中是正常的。
? 在本书中E M P L O Y E E表被广泛地用于范例中。对E M P L O Y E E表的约束包括:
? 除P H O N E _ E X T外,需要所有的字段(必须输入数据)。
? 能生成E M P _ N O,这样建立新记录时就不需要输入它。它同时也是主关键字,因此请不要改变它。
? 引用的完整性。
? 在D e p a r t m e n t表中必须存在D E P T _ N O。
? 在J O B表中必须存在J O B _ C O D E,J O B _ G R A D E,J O B _ C O U N T RY。
? S A L A RY必须大于或等于j o b表中的m i n _ s a l a r y域,以匹配j o b表中的j o b _ c o d e,job_grade 与j o b _ c o u n t r y。
? FULL_NAME由查询生成, 因此没有必要对它做任何输入。通常,修改现存记录中的L A S T _ N A M E,F I R S T _ N A M E, P H O N E _ E X T域是最安全的。在数据库教程中也使用C U S TO M E R表。它的约束包括:
? CUST_NO是生成的,因此不需要在建立新记录时对它做输入。
当你在例子中往e m p l o y e e表中添加,插入或更新数据并试图把所做的修改保存到服务器表中时这些约束影响所有的例子,如7 . 1节“保存来自Q u e r y D a t aSe t的修改”所
示。
? 一个永远适合于新I n t e r B a s e数据库的用户名和口令是“ S Y S D B A”(没有引号)作为用户名,“m a s t e r k e y”作为口令。此两数据也在本书的教程中得到使用。注意InterBase口令是区分大小写的。
? 在安装程序完成后的任何时间,都可以通过从控制面板中点击O D B C图标来创建额外的O D B C数据源。若要查看I n t e r B a s e表的元数据:
1) 确保通过运行I n t e r B a s e服务器已经连接到一个数据库。
2) 从I n t e r B a s e程序组运行InterBase Windows ISQL。
3) 从InterBase Interactive SQL菜单中选择File|Connect to Database(连接到数据库)。
4) 在InterBase examplesdatabase目录中浏览e m p l o y e e . g d b数据库,找到数据库连接对话框(Database Connect)的数据库信息(Database Info)部分的数据库字段。
5) 输入用户名和口令。点击O K进行连接。
6) 选择M e t a d a t a | S h o w来研究在I n t e r B a s e范例数据库中的e m p l o y e e (雇员)和其他表上的约束。
还可以使用JDBC Explorer 查看数据和元数据,在JB u i l d e r中可以通过选择Tools|JDBC Explorer来得到。
3.4 使用InterClient
作为I n t e r B a s e的一个纯Java API,I n t e r C l i e n t使得因特网和公司内部网开发独立于平台的客户机/服务器成为可能。一个纯Java 驱动程序相对于一个本机代码驱动程序的优点是你可以部署基于I n t e r C l i e n t的a p p l e t,而不需要手工地在每个客户机系统上装载1 0 第一部分开发数据库应用程序下载特定平台的J D B C驱动程序( We b服务器自动地下载I n t e r C l i e n t类与a p p l e t )。因此,没有必要管理本地的本机数据库的库文件,这简化了顾客应用程序的管理和维护。作为Java applet的一部分,I n t e r C l i e n t能够动态更新, 这进一步减少了应用程序部署和维护
的费用。要安装I n t e r C l i e n t:
1) 确保安装了J B u i l d e r,并至少运行了一次, 这样I n t e r C l i e n t安装程序能够把到I n t e r C l i e n t . j a r 的路径加到J B i n l d e r. i n i 中J a v a V M _ p r o p e r t i e s 部分的D j a v a . c l a s s . p a t h行中,并把一个关于库文件的项目加到l i b r a r y. i n i中。
2) 关闭计算机上运行的包括J b u i l d e r在内的所有应用程序。
3) 通过从I n t e r B a s e程序组选择Start InterBase Server来启动I n t e r B a s e服务器。如果没有安装I n t e r B a s e,参见3 . 3节“安装Local InterBase服务器”。
4) 从JBuilder CD上安装I n t e r C l i e n t。从JBuilder CD运行I n s t a l l . e x e,在安装程序屏幕上选择I n t e r C l i e n t,并且单击O K。接受所有的缺省设置。当安装完成时,可以根据需要配置I n t e r C l i e n t。当全部完成后,重启计算机。如果要为使用I n t e r C l i e n t而设置J B u i l d e r,请参阅5 . 2 . 1节“为数据库教程设置
I n t e r C l i e n t”。关于使用InterClient 纯Java JDBC驱动程序的教程,参见5 . 2节“教程:使用纯J a v aJ D B C驱动程序与数据库连接”。I n t e r C l i e n t允许Java applet和应用程序:
? 打开并维护到I n t e r B a s e数据库服务器的高性能的、直接连接。
? 绕过资源密集,无状态的网络服务器访问方法。
? 允许更高的吞吐率,并减少We b服务器的通信量。
I n t e r C l i e n t的主要用户是希望创建基于J a v a的客户机/服务器的应用程序开发者。J a v a开发者应该能够无缝地在他们的J D B C应用程序下交换R D B M S后端(back end)。
I n t e r C l i e n t 提供一个小规模、容易维持R D B M S ( I n t e r B a s e )作为J D B C应用程序的末端。因为I n t e r B a s e末端很小,经济,而且符合像J D B C一样的S Q L标准,因此它是一个理想的解决方案。编写新的基于J a v a 的客户机程序的I n t e r B a s e开发者可以使用I n t e r C l i e n t访问他们现存的I n t e r B a s e数据库。因为I n t e r C l i e n t是一个纯J a v a驱动程序,它也可以在S u n公司新的N C (网络计算机),即运行a p p l e t的桌面机器上使用。N C没有硬盘或CD ROM,用户通过从服务器上下载的a p p l e t来访问他
图3-1 InterClient体系结构
Java Applet
客户端驱动程序
桌面客户系统数据库访问
服务器
We b服务器
I n t e r S e r v e r
I n t e r S a s e
D a t a b a s e
downlcad byteclearcase/" target="_blank" >ccde
网络
们的应用程序和数据。
图3 - 1显示了I n t e r C l i e n t体系结构。
I n t e r C l i e n t由两个主要的部分组成:
? 一个叫I n t e r C l i e n t的客户机端J a v a包,包含实现大部分JDBC API的J a v a类库以及JDBC API的一套扩展。本包与J D B C驱动程序管理器(JDBC Driver Manager)相互作用,从而允许客户机端J a v a应用程序和a p p l e t与I n t e r B a s e数据库相互作用。
? 一个叫做I n t e r S e r v e r的服务器端驱动程序。此服务器端中间件起到基于I n t e r C l i e n t的客户机与I n t e r B a s e数据库服务器之间的翻译器的作用。开发者可以用两种方法部署基于I n t e r C l i e n t的客户机:
? Java applet是可以用< A P P L E T >标志包括在H T M L页的J a v a程序,它通过一个We b服务器来服务,并用有效的J a v a网络浏览器在客户机系统上实现对它的查看与使用。此部署方法不需要在客户机系统上手工安装I n t e r C l i e n t软件包。然而在客户机系统上需要一个可用的J a v a浏览器。
? Java application(应用程序)是在客户机系统上可执行的独立的J a v a程序。此部署方法需要I n t e r C l i e n t软件包,以及安装在客户机系统上的J a v a运行环境( J a v a
Runtime Environment, JRE) 。J R E包括J D B C驱动程序管理器(JDBC DriverM a n a g e r )。
3.5 教程中JDBC数据库连接的故障诊断
使用J D B C连接到S Q L服务器可能导致由J D B C产生的错误信息。下面列举的错误可能在本书中创建教程时会遇到,了解它们可以帮你解决连接问题.注意J D B C错误可能与其他的警告和信息文本混在一起。如果错误和消息在一起, 你也许需要参考JDBC错误响应中的若干行信息。
1. 不能装载“ J d b c O d b c . d l l”d l l文件
找不到J d b cOd b c . d l l。验证J d b c O d b c . d l l已经安装在D O S路径上的某个目录中, 而且以前在路径中没有此. D L L文件的任何更老的版本。通常,这个文件安装在 j a v a b i n中。如果它不在那里,那它可能被删除, 或者j d b c - o d b c桥没有被正确安装。关于安装说明,参见第3章,“安装与设置用于数据库应用程序的J B u i l d e r”
2. java.sql.SQLException:没有合适的驱动程序当与一个U R L连接时,每个注册了的驱动程序都被用来检查指定的U R L。当没有显示出对哪个U R L的支持时发生这个错误。当没有找到指定的U R L的驱动程序类文件(例如,s u n . j d b c . o d b cJd b cOd b c D r i v e r )时,可能发生此错误。请检查驱动程序类名是否被正确指定,而且已经正确安装。通常应该在数据库组件的连接对话框中确认驱动程序名。选择Choose URL按钮,可得到一个已知U R L列表。此错误发生的另外一个可能的原因是一个无效的U R L。在这种情况下,请检查U R L名字是否正确输入。
3. 数据源名字没有找到
在应用程序中指定的D a t a S o u r c e名与O D B C配置(例如,在安装本地I n t e r B a s e时)设置的数据源不匹配。请参见3 . 3节关于设置D a t a S o u r c e名的“安装Local InterBase 服务器”。若与数据源列表不匹配,则在数据库组件的连接对话框中选择Choose URL按钮。在O D B C驱动程序(ODBC Drivers)组中选择Show data sources(显示数据源)按钮。
4. 与j a v a . s q l . S Q L E x c e p t i o n连接失败: [ . . . ]不能使用的数据库
你指定的数据库不能使用。方括号包含你试图使用的驱动程序的名字,请检查服务器是否正在运行,并可以使用。如果服务器是在教程中提到的I n t e r B a s e服务器,则从它的Program Group(程序组)选择I n t e r B a s e服务器来启动I n t e r B a s e服务器。第3章安装与设置用于数据库应用程序的