动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   Jsp → 阅读文章

 建立entity bean

作者来源: 
阅读 1829 人次 , 2006-4-19 1:34:00 


  好了,我们现在在orion目录下,我们运行java -jar orion来启动orion server后会发现如下的提示:

  Auto-deploying helloejb (New server version detected)...
  Auto-deploying helloejb-ejb.jar (No previous deployment found)... done.
  Orion/1.3.8 initialized

  这就说明系统找到了我们进行打包的ear文件,并且没有发生问题。同时在orion\application-deployments目录中会多出一个helloejb的目录,这其中会存储所有的helloejb的设置文件状态,如果你改动了系统发现系统没有按照改动产生应用。可以试着重新启动orion,如果还不能改变,哪么我们可以删除这个目录,orion在重新运行时就会像上面一样重新识别ear文件。同时我们还可以在存放ear文件的目录(在我的计算机上是c:\hdsite\rel)orion会自动把ear文件分解开来寻找相应的文件来使用。这是一个小的插曲,我们完全可以忽略这些,开始看一下我们的伟大工程的第一步:

  我们打开浏览器,由于我是在一台计算机上所以我输入http://localhost/helloejb/ 就可以看到这样的页面:

  Time stamp: Sun Dec 17 22:15:15 CST 2000
  Hello type: Hello_StatelessSessionBeanWrapper0
  Answer: Hello HD...

  如果你得到了这样的信息,哪么你就成功的完成了一个session bean与servlet ejb client的实例。如果再回过头去理解EJB的构建框架将十分的有利。

  下一步,我们会做一个更为复杂的工作-建立一个entity bean。同时我们将这个entity bean连接到数据库上,与数据库中的一个表进行关联,存储用户输入的数据。同时我们使用jsp来与用户进行交互处理,用它来调用ejb与数据库进行存取操作。这个应用主要是通过一个web页面让用户登录到服务器上,来管理自己的地址本。这个地址本由许多人的地址组成。我们需要在刚才所建立的目录中再加入几个目录如下:

  hdsite/src/java/net/chinacode/addressbook
  hdsite/src/jsp
  hdsite/src/web

  这里第一个目录存放addressbook的ejb相关文件,jsp目录存放所有的jsp文件,web目录则是存放所有的html源文件。我们先来写Home Interface,它与session bean的Home Interface没有什么区别,因为他们都是继承自EJBHome,只是create不太一样,如下所示:

package net.chinacode.addressbook;

import java.rmi.*;
import java.util.*;
import javax.ejb.*;

public interface AddressBook extends EJBHome {

  public AddressEntry create(String name, String address, String city)
  throws CreateException, RemoteException;

  public AddressEntry findByPrimaryKey(String name)
  throws FinderException, RemoteException;

  public Collection findAll()
  throws FinderException, RemoteException;
}

  我们将这个文件存入hdsite/src/java/net/chinacode/addressbook/AddressBook.java文件中。

  接下来我们完成Remote Interface,由上面的creat的返回值我们就知道它的类名应该是AddressEntry。但是我们还需要考虑的是这个EJB要向用户完成什么样的方法(或是说属性)。我们做为例子,定义一个地址由人名、城市、地址组成。我们在数据库中由人名组成主键,这样就不会出现记录重复的现像,哪么也同时说明人名将是一个只读的属性。依照一个Bean的属性的规则,我们构建Remote interface的代码如下:

package net.chinacode.addressbook;

import javax.ejb.*;
import java.rmi.*;

public interface AddressEntry extends EJBObject {
  public String getName() throws RemoteException;
  public String getAddress() throws RemoteException;
  public String getCity() throws RemoteException;
  public void setAddress(String newAddress) throws RemoteException;
  public void setCity(String newCity) throws RemoteException;
}

  这可以可注意Name属性只有get而没有set,这就形成了Name是一个只读的属性。   
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:Bean和Servlet的企业应用(1)
· 下一篇:Java Servlet和JSP教程之四
· JSP技术生成动态web页面
· JSP语法(6)——Page指令
· Forte for Java开发指南(一)
· JSP由浅入深(7)—— JSP Directives
· 接触 solaris : 安装 oracle


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077