2009年2月27日星期五

简单实现多表插入

概述

本文主要描述在ADF开发中如何利用简单的方式实现多表插入。

场景:

在应用开发过程中,经常会遇到往一张或者两张表中插入/更新数据时,需要同时往另外的表中插入/更新数据,一般在遇到这样的情况时,需要基于所有需要实现插入/更新的表的EO创建VO,不过,如果是在VO已经创建完成,且待插入/更新的表的字段较少并与已存在VO关联的EO中的数据关系密切时,可以采用更简便的方式实现。

实现

1、创建名为Student的表,包含以下字段:S_IDS_NAMES_SEXDELETEFLAG

2、创建应用,基于EmployeesStudent表创建EO/VO并添加VO的实例到AM中。

3、分别生成EmployeesStudent两个EO的实现类。

4、在EmployeesImplEmployees EO的实现类)中改写doDML()方法为如下代码:

protected void doDML(int operation, TransactionEvent e) {

if (operation == DML_INSERT) {

EntityDefImpl student = StudentImpl.getDefinitionObject();

StudentImpl newStudent =

(StudentImpl)student.createInstance2(this.getDBTransaction(), null);

newStudent.setSId(this.getEmployeeId());

newStudent.setSName(this.getFirstName() + " " + this.getLastName());

}

super.doDML(operation, e);

}

5、保存应用,运行业务组件浏览器进行测试。

最终运行结果:


相关代码请查看:

howtocomplexinsert.rar

0 评论:

发表评论