四、entity beans
1. 建立数据库
我们已经成功的开发了一个session bean。不要觉得它简单,至少它是在jbuilder4中开发ejb的基本步骤。在这一章里,我们将要开发ejb的另外一种形态–entity beans。
一个entity bean是一个稳定的数据的对象表现,在我们的例子里,稳定的数据是一个关系数据库
首先,我们将在interbase上建立一个数据库。
步骤:
1、 启动interbase server。
2、 启动interclient中的interserver。
3、 运行interbase中的interbase winodws isql。
4、 在interbase winodws isql中,选择"file"-"create database…"。
5、 设置database name为"d:\project\quickstart\accounts.gdb,用户名和口令用"sysdba"、"masterkey"。点击ok。如图17。
6、 在interbase winodws isql窗口上部的文本框中,输入下面的建立数据库表的sql语句:
create table account
( name varchar(20) not null,
balance integer not null,
primary key (name)
)
图17
7、 执行建立的sql语句。如图18。
图18
8、 退出,回答"yes"提交工作。
2. 开发entity beans
我们将利用jbuilder4所提供的向导来生成我们将要开发的entity bean的代码,并且将它加入到前面的项目中。
首先,我们需要为刚才建立的数据库,指定jdbc驱动程序。退出jbuilder4。从interclient的安装目录下(这里是:d:\interbase corp\interclient)复制interclient.jar文件到jbuilder4安装目录下的lib子目录里面。用任意的文本编辑器打开jbuilder4安装目录下的bin子目录里面的jdbce.config文件。在此文件的尾部加上:
# add other database drivers here
addpath ../lib/interclient.jar
保存此文件,重新打开jbuilder4。
检查以下我们前面所做的工作:
1、 在jbuilder4中,选择"tools"-"jdbc explorer"。
2、 在jdbc explorer窗口中,选择"file"-"new…"。
3、 选择"driver"为:interbase.interclient.driver;"url"通过旁边的浏览按钮定位在我们刚才建立数据库的地方(d:\project\quickstart\accounts.gdb)。如图19。
图19
4、"ok"之后,在jdbc explorer中展开我们刚刚建立数据库url。用户名:sysdba;密码:masterkey。登录之后,展开树,就可以看到我们所建立的表和表中的列了。如图20。
图20
现在,我们就可以开始建立我们的entity bean了。
步骤:
1、 在jbuilder4中,选择"file"-"new…"-"enterprise"标签–"ejb entity bean modeler",点击"ok"按钮之后,在向导的步骤1里,将此bean加入已经建立的ejb group(quickstart.ejbgrp)。
2、 利用前面建立的数据库url(driver;interbase.interclient.driver;url: jdbc:interbase://localhost/d:\project\quickstart\accounts.gdb),用户名:sysdba;口令:masterkey;登录到数据库中,点击"next"。如图21。
图21
3、 根据提示,选择account表,"next",选择表中所有的列,"next"到"finish"。
4、 保存所有的文件,然后编译工程。(单击工具栏的
和
图标)。
这样,我们实际上就已经完成了这个entity bean的开发工作。jbuilder4的向导已经在配置描述符中增加了一个入口和一个数据源的入口。
一个entity bean只不过是生成的代码。下面我们将建立一个客户程序来访问这个entity bean。这个客户程序将建立四个entity bean的实例,在数据库的account表中建立四行数据。
使用jbuilder4的ejb test client wizard,在这一次我们建立的测试客户程序,将依靠account ejb,根据提示,使用缺省的类名:accounttestclient1就可以了。利用向导,生成main函数,然后在生成的main函数的try…catch语句块中,"accounthome = (accounthome) portableremoteobject.narrow(ref, accounthome.class);"的后面,加入下面的代码:
account ac1=accounthome.create("john",150);
account ac2=accounthome.create("paul",150);
account ac3=accounthome.create("george",150);
account ac4=accounthome.create("ringo",150);
用鼠标右键点击项目窗格的accounthome.java文件,选择"properties…"。在弹出窗口中的"build"标签中的"visibroker"标签中,选择"generate iiop",点击"ok"。
保存所有的文件,然后编译工程。(单击工具栏的
和
图标)。
3. 配置
我们仍然在jbuilder4中运行ejb容器。客户程序将依靠运行在ejb容器中的entity bean在数据库的account表中建立四行数据。
首先,建立一个库,这样当我们运行ejb容器的时候,interclient jdbc驱动程序能够被添加到classpath。
步骤:
1、 在jbuilder4中选择"project"-"project properties…"。
2、 在"required libraries"标签中,点击"add…"。
3、 在弹出的窗口中,点击"new…"。
4、 将jbuilder4安装目录下的lib子目录里的interclient.jar文件添加到"library paths"中。
5、 "name"值设为:interclient。
完成之后,就可以运行你建立的应用了。
确认visibroker smart agent、interbase server和interclient的interserver仍然在运行。
点击工具条上的
,运行容器。等待容器初始化。
用鼠标右键点击项目窗口的accounttestclient1.java,选择"run"。
完成之后,运行jdbc explorer。
展开"interbase://localhost/d:\project\quickstart\accounts.gdb",点击"tables"下的account表。在右边窗格选择data标签。你将看到程序所创建的新的四行数据。
如图22。
图22
