现在的位置: 首页 > 综合 > 正文

Eclipse快速上手EJB — 2. 设计一个实体Bean

2013年10月04日 ⁄ 综合 ⁄ 共 3383字 ⁄ 字号 评论关闭
   在看这篇文章之前,需要对开发环境的配置了解清楚,这一点我在前篇文章《Eclipse快速上手EJB -- 1. Lomboz + JBoss-IDE 配置1+2 》 中已经详细介绍了,这篇文章就是以它为前提进行的。

 
一、JBoss相关配置 
  
   在 《快速上手 MySQL --图形化操作详解 》 中谈到的mysql-connector-java-3.0.16-ga.zip现在有了用场,将其解压,会发现其中有一个文件 mysql-connector-java-3.0.16-ga-bin.jar,它就是 MySQL的驱动程序。把它复制到F:/java/jboss/server/default/lib 目录下,这里 F:/java/jboss 是JBoss的安装目录。
 
从jboss/docs/examples/jca/目录下复制mysql-ds.xml文件到jboss/server/default/deploy目录,需要做一点修改。

mysql-ds.xml 

<?xml version="1.0" encoding="UTF-8"?>

<!-- $Id: mysql-ds.xml,v 1.3 2004/09/15 14:37:40 loubyansky Exp $ -->
<!--  Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->

<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/cmp_sample?useUnicode=true&amp;characterEncoding=GBK</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>javamxj</password>

      <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
      <metadata>
         <type-mapping>mySQL</type-mapping>
      </metadata>
  </local-tx-datasource>

</datasources>
 

    这是修改后的文件,很简单,注意用户名和密码替换成自己的,还有就是使用的数据库是“cmp_sample”,如果没有这个数据库,那么先在MySQL中建立它。使用GBK进行编码,解决了中文问题(结合《快速上手 MySQL --图形化操作详解 》中 MySQL 的配置)。
 
 
 
二、建立项目 
 
●  新建一个 Lomboz J2EE Project:
·项目名:CMP_Sample  
·EJB Modules:cmpEJB
·Targeted Server:  JBoss 4.0.0
 
●  继续在 CMP_Sample 项目中,右击“src” ->新建 ->Lomboz EJB Creation Wizard :
· 包(K) :javamxj.ejb.cmp
· 名称(M): User
· EJB Type: 选择 Container Managed Entity EJB
   点击下一步。
 
 
同样,再增加一个密码栏:
· Field: password,
· Field Type: java.lang.String,
· Database Column: 密码,
· SQL Type: varchar
  这个不要使它成为主键。
  最后点击完成。
 
 
三、验证配置
 
· 现在修改生成的 UserBean.java 文件,先添加自动创建表的语句
 
· 注意:如果使用自动创建表的语句,这里有个bug:
 
 
●  好了,现在来试验一下各种配置有没有问题:
 
· 先将 UserBean.java 添加到 cmpEJB 模块中,然后 lomboz ->Generate EJB Classes 生成其它ejb类文件(建议看看生成的文件,弄清楚 XDoclet 的原理)。
 
· 运行 MySQl 服务,再通过 Lomboz 启动 JBoss 服务器。
 
· 然后通过 Deploy Module  部署 cmpEJB 模块,再打开MySql的客户端,会发现在 cmp_sample 数据库中已经自动生成了一个 usertable 的数据表,如图:
如果能顺利进行到这一步,那么各种配置都没问题,再开始下一阶段。
 
 
完成 ejbCreate 和 ejbPostCreate 方法:
 
在上面的 @ejb.bean 中添加  view-type = "local" 
 
保存,UserBean 暂时告一段落。
 
 
四、创建会话Bean
 
右击 javamxj.ejb.cmp包,还是选择Lomboz EJB Creation Wizard :
· 包(K) :javamxj.ejb.cmp
· 名称(M): UserManagement
· EJB Type: 选择 Stateless
然后,点击“完成”,这时会生成一个 UserManagementBean.java 的文件
 
首先,增加一个 UserLocalHome 的变量 userHome,
  private UserLocalHome userHome = null;
 
然后右击 UserManagementBean ->J2EE ->Add Create Method(这是 JBossv-IDE 附带的):
 
 
下一步:
在生成的代码框中添加语句:
userHome = UserUtil.getLocalHome();
 
如下图:需要手工输入的语句已经标出来了:
 
 
 
●  添加业务方法
 
· 增加 addUser 方法,向上面操作一样,右击 UserManagementBean ->J2EE ->Add Business Method
 
在生成的代码框中添加语句:
UserLocal user = userHome.create(email, password);
 
· 增加 removeUser 方法
在生成的代码框中添加语句:
userHome.remove(email);
 
· 增加 verifyPassword 方法
在生成的代码框中添加语句:
UserLocal user = userHome.findByPrimaryKey(email);
return user.getPassword().equals(password);
 
 
●  为了将 UserBean 与 UserManagementBean 联系起来,在上面注释中添加:
 *           view-type = "remote"
 * @ejb.ejb-ref ejb-name = "User"
 *    view-type = "local"
 *    ref-name = "ejb/UserLocal" 
 *
 *   @jboss.ejb-local-ref ref-name = "UserLocal" 
 *     jndi-name = "UserLocal"
如图:
 
  好了,UserManagementBean 暂时完成了。
 
 将 UserManagementBean 加入到 cmpEJB 模块中,
 
·  然后 lomboz ->Generate EJB Classes
 
· 运行 MySQl 服务,再通过 Lomboz 启动 JBoss 服务器。
 
· 然后通过 Deploy Module  部署 cmpEJB 模块
 
  如果一切正常,那么开始创建客户端。
 
 
 
五、创建客户端
 
· 右击 src 文件夹 ->新建 ->Lomboz EJB Test Client  Wizard:
 
· 修改生成的 CMPClient1.java
 
· 运行客户端程序,则客户端控制台会输出:Login =true
 
· 同时,用 MySQL 客户端软件查看 cmp_sample 表,则如下,显示3条数据。
 
 
 
六、完整的源码
 

UserBean.java

/*
* 创建日期 2005-1-14
*
* 作者:javamxj(分享java快乐)
*/
package javamxj.ejb.cmp;
/**
*
* <!-- begin-user

抱歉!评论已关闭.