NCBO-VO-DMO编写规范和注意事项.doc_第1页
NCBO-VO-DMO编写规范和注意事项.doc_第2页
NCBO-VO-DMO编写规范和注意事项.doc_第3页
NCBO-VO-DMO编写规范和注意事项.doc_第4页
NCBO-VO-DMO编写规范和注意事项.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京用友软件股份有限公司 New Century 管理软件事业部BO-VO-DMO编写规范和注意事项使用的VO类说明GeneratInfoVO private String m_sTableName;private ArrayList m_alColNameVOs; /ArrayList中的元素为字段名称voprivate ArrayList m_alTableRelVOs;/ArrayList中元素为表关系VOprivate Integer m_iNum;/生成数据数量private UFBoolean m_isLevelType; /为分级类型private Integer m_perLevelSubNum;/每级分支数private Integer m_levelNum; /分级层数private Integer m_topTypeNum; /初始分类数private UFBoolean m_isNumEqualSub=new UFBoolean(false); /是否生成数量与子表数量相同private String m_sSubTableName; /如以子表数量为准,此为子表名称TableRelVOprivate String m_sSubTableName; /子表物理名称private String m_sMainTableKey; /主表关联键值private String m_sSubTableKey; /子表外键private Integer m_iSubRowNum; /使用子表数据数量private String m_sWhereStr; /取值限制条件ColNameVO private String m_sFieldName; /字段名称private String m_sDataType; /数据类型private Integer m_iDataFrom; /当数据类型为数字时,数据范围起始值private Integer m_iDataTo; /当数据类型为数字时,数据范围结束值private ArrayList m_alSampleNames; /字段示例名称,字段值从此集合中得到 /如行数超过给出的值的个数,则在其后加4为数字序号 /序号从0001开始private UFBoolean m_isMLevel=new UFBoolean(false); /是否为分级编码private Integer m_perLevelNum; /分级编码每级次使用位数private Integer m_perLevelSubNum;/每级分支数private Integer m_levelNum; /分级层数 private Integer m_topTypeNum; /初始分类数private UFBoolean m_isLevelName; /是否为分级编码名称private ArrayList m_alResult; /生成数据结果集使用示例目前以存货管理档案为例说明使用方法比如要生成10000条存货管理档案的数据则将GeneratInfoVO中的num置为10000,StableName置为bd_invmandoc存货管理档案中引用 bd_invbasdoc的id(即需关联子表)new 一个 TableRelVO在 SmainTableKey中写入bd_invmandoc中对应外键子段名pk_invbasdocSsubTableName中写入表名bd_invbasdocSsubTableKey中写入子表键值子段名pk_invbasdoc将TableRelVO写入ArrayList中将ArrayList写入GeneratInfoVO的AlTableRelVOs中如需关联多个表则填写多个TableRelVO即可当前要生成数据的表中字段信息写入ColNameVO比如bd_invmandoc中字段planprice数据类型为UFDouble则在ColNameVO中SdataType字段中写入” SDataType”要生成10到1000之间的任意数则在ColNameVO中IdataFrom写入10IdataTo写入1000将ColNameVO写入ArrayList中,将该ArrayList写入GeneratInfoVO的AlColNameVOs目前的数据类型有String IntegerUFDoubleUFBooleanStringFromSubkey /生成随机的20位编码,当需要生成大批名称或建值时使用当数据类型为String时如果需要生成的数据在几个字符串中随机选择可以将这些字符串写入ArrayList放入ColNameVO的AlSampleNames中当某字段为外键关联其它表时,除在TableRelVO中描述关系还要使用ColNameVO描述字段信息,其数据类型要置为StringFromSub如果需要生成的数据数量依赖某子表数量比如一个公司的存货管理档案中引用存货基本档案时不能重复,需在GeneratInfoVO中将NumEqualSub置为true,并且在SubTableName中写入存货基本档案的表名。此时num中写入的生成数量不生效 客户端掉用nc.ui.scm.datatools.GeneratDataBO_Client.generatData(ArrayList vos)参数ArrayList中为GeneratInfoVOBO端调用nc.bs.scm.datatools.GeneratDataBO.generatData(ArrayList vos)private GeneratInfoVO makeInvMVO(String sPkCorp) GeneratInfoVO vo=new GeneratInfoVO();vo.setSTableName(bd_invmandoc);/要生成的数据表名称vo.setLevelType(new UFBoolean(false);vo.setNum(new Integer(10000);vo.setNumEqualSub(new UFBoolean(true);vo.setSubTableName(bd_invbasdoc);ArrayList alTemp=new ArrayList();TableRelVO tvo=new TableRelVO();tvo.setSMainTableKey(pk_invbasdoc);tvo.setSSubTableName(bd_invbasdoc);tvo.setSSubTableKey(pk_invbasdoc);alTemp.add(tvo);vo.setAlTableRelVOs(alTemp);alTemp=new ArrayList();ArrayList alColNameVOs=new ArrayList();ColNameVO cvo=new ColNameVO();cvo.setSFieldName(pk_invmandoc);cvo.setSDataType(key);alColNameVOs.add(cvo);cvo=new ColNameVO();cvo.setSFieldName(pk_corp);cvo.setSDataType(String);alTemp.add(sPkCorp);cvo.setAlSampleNames(alTemp);alColNameVOs.add(cvo);cvo=new ColNameVO();cvo.setSFieldName(planprice);cvo.setSDataType(UFDouble);cvo.setIDataFrom(new Integer(100);cvo.setIDataTo(new Integer(1000);alColNameVOs.add(cvo);cvo=new ColNameVO();cvo.setSFieldName(accflag);cvo.setSDataType(String);alTemp=new ArrayList();alTemp.add(N);alTemp.add(N);alTemp.add(Y);cvo.setAlSampleNames(alTemp);alColNameVOs.add(cvo);cvo=new ColNameVO();cvo.setSFieldName(sealflag);cvo.setSDataType(String);alTemp=new ArrayList();alTemp.add(N);cvo.setAlSampleNames(alTemp);alColNameVOs.add(cvo);cvo=new ColNameVO();cvo.setSFieldName(sellproxyflag);cvo.setSDataType(String);alTemp=new ArrayList();alTemp.add(N);alTemp.add(Y);cvo.setAlSampleNames(alTemp);alColNameVOs.add(cvo);cvo=new ColNameVO();cvo.setSFieldName(qualitymanflag);cvo.setSDataType(String);alTemp=new ArrayList();alTemp.add(N);alTemp.add(Y);cvo.setAlSampleNames(alTemp);alColNameVOs.add(cvo);cvo=new ColNameVO();cvo.setSFieldName(serialmanaflag);cvo.setSDataType(String);alTemp=new ArrayList();alTemp.add(N);alTemp.add(Y);cvo.setAlSampleNames(alTemp);alColNameVOs.add(cvo);cvo=new ColNameVO();cvo.setSFieldName(wholemanaflag);cvo.setSDataType(String);alTemp=new ArrayList();alTemp.add(N);alTemp.add(Y);cvo.setAlSampleNames(alTemp);alColNameVOs.add(cvo);cvo=new ColNameVO();cvo.setSFieldName(pk_invbasdoc);cvo.setSDataType(StringFromSub);alColNameVOs.add(cvo);vo.setAlColNameVOs(alColNameVOs);return vo;注意事项(1) 一个BO类中不能有名称相同且参数个数相同的两个方法同时存在。因为目前中间件生成工具处理此情况存在问题(2) 对于界面上显示信息,如要在提示框中显示:产品编码 P008 不存在其中P008是随着用户当时操作而显示的,其它的是固定显示的,则应在编程时使用产品编码 不存在,即将动态变化的部分用标注出来因为在国际化时将不对此部分进行翻译(3) 不建议使用可视化进行事件处理,请手工注册事件监听器和处理事件因为可以减少不必要的代码(4) 中间件目前已采用tomcat, 替换原来的jsdk(5) 所有异常应打印出来,可使用下述语句:e.printStackTrace(System.err);(6) BO的所有业务方法都必须抛出异常:java.rmi.RemoteException;否则将不能生成EJB辅助代码其他注意事项(7) 所有的业务逻辑处理(参数合法性判断、Sql语句拼接、多个VO之间的处理等)尽量放在BO中处理,DMO只完成对数据库的访问;(8) 如果在一个BO方法中涉及到对多个表的更新操作,需要锁多个表的多个纪录,建议过程如下: 合法性判断 数据组织 申请业务锁(多个表的业务锁同时申请) 数据库更新(多个表同时更新) 解锁 希望不要如下所示: 数据组织 申请业务锁 数据库更新 解锁 -数据组织 申请业务锁 数据库更新 解锁因为如果第二次申请业务锁不成功,将导致事物全部回滚;(9) 对调用的外系统接口或平台的操作,应该捕捉BusinessException;(10) 希望各位对包的修改增加注释,格式如下:版本号 修改内容修改日期修改人(11) 对根据一组ID查询一组name,希望尽量通过在where语句中“id = a or id = b or id = c”来实现,减少与数据库交互的次数,但是,需要将id与name全部查出,因为在Oracle中,不能够根据where子句中的id顺序返回name;禁止的用法 BO(无状态Session Bean)、DMO中不允许用类成员变量来保存一些状态变量,或者对数据库连接资源、BO的Remote Object进行缓存;特殊处理: 特殊的BO(有状态Session Bean,必须首先进行部署的)的情况例外,但具体使用类成员变量来保存一些状态变量请

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论