快速业务通道

使用CMP Beans生成主键值 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

使用CMP Beans生成主键值

时间:2011-08-05

Sun Java System Application Server 支持 EJB 1.1、2.0 和 2.1 CMP beans 的自动主键生成。若 要指定自动主键生成,在 ejb-jar-xml 文件中将 prim-key-class 元素的值规定为 java.lang.Object。 具有自动生成主键的 CMP beans 可以参与与其他 CMP beans 的关系。Sun Java System Application Server 不支持数据库生成的主键值。

如果在部署期间创建数据库架构,Sun Java System Application Server 将创建具有主键列的方案, 然后在运行时为主键列生成唯一的值。

如果在部署期间未创建数据库架构,则映射表中的主键列必须是 NUMERIC 类型,精度为 19 或更高, 且不要映射到任何 CMP 字段。Sun Java System Application Server 将在运行时为主键列生成唯一的值 。

入门

开始之前,必须在计算机上安装 Sun Java System Application Server Platform Edition 8.1(下 载)。您无法将企业应用程序部署到绑定的 Tomcat 服务器。还必须在 IDE 中注册应用程序服务器,通 过选择 Tools > Server Manager。

本例也可以使用 MySQL 替换 PointBase 作为数据库服务器。若要了解如何在 NetBeans 中和应用程 序服务器上设置 MySQL,请参见此文档。

创建数据库表

我们所使用的范例是一个非常简单的数据库表,列出用户的 ID、last name 和 first name。

在 IDE 中注册 MySQL 驱动程序。在 Runtime 窗口中,展开 Databases > Drivers,右键单击 Drivers 节点并选择 Add Driver。

将连接注册到任一现有 MySQL 数据库。在 Runtime 窗口中,右键单击 MySQL driver 的节点并选择 Connect Using。(有关在 NetBeans IDE 中注册 MySQL 的更多信息,请参见此文档。)

在数据库中创建示例表。右键单击数据库连接的节点并选择 Execute Command。在 Command 字段中, 键入以下命令,然后单击 Execute:

CREATE TABLE customer (     id BIGINT(19) NOT NULL auto_increment, -- this column will be automat. generated     lastName varchar(25) NOT NULL,     firstName varchar(30) default NULL,     PRIMARY KEY (id));

创建 EJB 模块

从数据库连接生成 CMP beans 时,IDE 将自动把 id 列注册为主键,并为其创建 CMP 字段和 finder 方法。这要求您在能够运行 ejbCreate 方法前已了解主键。

而从应用程序服务器获得主键,您需要编辑 CMP bean,并对部署描述符和 ejbCreate 方法进行适当 更改。

编写 CMP Bean 的代码

从主菜单选择 File > New Project (Ctrl-Shift-N),然后创建名为 CustomerModule 的新 EJB Module 项目。

右键单击 CustomerModule 项目并选择 New > CMP Beans from Database。选择 MySQL 数据库连 接,然后将 org.bank 指定为包。在向导的下一页中,从数据库选择 customer 表,然后单击 Finish。

IDE 将为 customer 表创建 CMP bean。

删除 id CMP 字段。在 Projects 窗口中,展开 Enterprise Beans > CustomerEB > CMP Fields,右键单击 id 节点并选择 Delete。

使用CMP Beans生成主键值(2)

时间:2011-08-05

将 CustomerBean 中的 ejbCreate 和 ejbPostCreate 方法更改如下:

public java.lang.Object ejbCreate(java.lang.String lastName, java.lang.String firstName)    throws javax.ejb.CreateException {   if (lastName == null) {    throw new javax.ejb.CreateException("The field \"lastName\" must not be null");   }   // TODO add additional validation code, throw CreateException if data is not valid   setLastName(lastName);   setFirstName(firstName);   retur

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号