书签 分享 收藏 举报 版权申诉 / 27

类型华丹CHARISMA平台开发手册.docx

  • 文档编号:30617276
  • 上传时间:2023-08-18
  • 格式:DOCX
  • 页数:27
  • 大小:186.03KB

这是删除成功后的页面!

includepage="<%=JspUtil.getFooterURL()%>"/>

第4章业务模块开发

由于CHARISMA平台采用了先进的MVC的体系结构,因此,开发业务模块主要有四层,即表现逻辑、MVC资源、调度层及业务逻辑层的开发。

4.1表现逻辑

表现逻辑即页面展现。

对于MIS,ERP等管理系统,一般来说,显示方式主要有各种查询、统计报表及数据的录入、更新、删除等页面,这些页面在CHARISMA平台中都可以非常方便定制出来,无需进行开发。

特殊的页面,可以自己定制,可以用J2EE支持的所有模式,如常规的jsp,xml+xsl等。

在开发页面资源时,只涉及数据的展现及数据的录入,对于业务逻辑处理,要采用MVC的方式进行处理。

在页面中,如果需要处理业务,只需新建一个MVC资源,将页面中form的action属性值、的href属性值、或其它URL设置为对应的MVC资源的URL即可。

这样提交后,就将页面中的数据提交到对应的MVC调度层处理。

MVC的URL格式为:

子系统标识.MVC标识.do?

URL参数,如demo.submitApply.do?

applyNo=1。

4.2MVC资源

MVC资源的设置请参考“CHARISMA平台使用手册”。

4.3调度层

调度层介于页面表现逻辑与业务逻辑之间,起中间调度作用。

主要接受与处理页面(request)参数、调用业务逻辑,以及根据业务逻辑的返回结果返回相应的MVC结果。

调度层的编写比较简单,规范如下:

1、继承charimsa.web.mvc.AbstractAction类;

2、具有无参数的构造函数;

3、具有方法:

publiccharimsa.web.mvc.ActionResultperform(HttpServletRequestrequest,HttpServletResponseresponse,AppSessionappSession)throwscharimsa.sys.exception.Chariscexception。

其中charimsa.web.mvc.ActionResult及charimsa.sys.exception.Chariscexception的含义请参考相应的APIDoc。

各参数含义如下:

ØparamrequestHttpServletRequest实例。

ØparamresponseHttpServletResponse实例。

ØappSession当前应用会话。

具体参见“业务模块开发举例”。

4.4业务层

4.4.1简述

业务层即业务逻辑处理层。

业务逻辑类可以用JavaBean,也可以用EJB(SessionEJB)。

如果采用EJB,每个EJB均需要通过模块:

系统控制中心>>系统资源维护>>EJB信息维护,来注册。

CHARISMA平台为业务逻辑层提供了大量的API,特别是数据库控制引擎封装了所有的数据库操作,简化了数据库操作相关的业务逻辑方法的编写,在开发时基本上无需编写SQL语句。

详细请参考CHARISMA平台的JavaAPIDoc。

在编写有关数据库操作的业务逻辑时,也可以不用CHARISMA平台提供的数据库控制引擎,而采用EntityEJB、Hibernate、或JDO等技术,只是需要自己设置数据库连接,以及日志处理等。

业务逻辑类必须继承类charimsa.sys.util.BusiBase类。

4.4.2数据访问业务逻辑编写

以下主要介绍如何采用CHARISMA平台的数据库控制引擎来编写业务逻辑。

数据库控制引擎对外开放的类主要有3个:

charimsa.sys.db.DBMng、charimsa.sys.db.SQLObj以及charimsa.sys.db.DBOpUtil。

其中前两个类是核心类,可以实现一切数据库操作,DBOpUtil是为了简化,对常用的数据库操作进行再封装。

4.4.2.1数据表映射类编写

通过数据库控制引擎访问数据库,首先必须对所涉及的数据表(或视图)编写相应的数据表映射类(或视图映射类,以下统称数据表映射类)。

数据表映射类即一般的数据类,主要由对应数据表字段的属性组成。

注意需要继承类charimsa.sys.db.TableBean,并实现接口:

java.io.Serializable,如publicclassST_SYSUSERextendsTableBeanimplementsSerializable。

表类名与数据表名可以不相同,属性名与字段名也可以相同,按TableBean规范设定,具体参照JAVADOCAPI。

要求所有字段名对应的属性均为public。

数据表映射类可以通过模块:

系统控制中心>>代码生成管理>>数据表映射类生成向导生成代码。

例如:

packagecharisma.sysmng.tabbean;

importjava.io.Serializable;

importcharisma.sys.db.TableBean;

/**

*

Description:

数据表ST_SYSUSER映射类

*/

publicclassST_SYSUSERextendsTableBeanimplementsSerializable

{

//如果类名与数据列名不同。

/*

publicStringtableName()

{

return"数据表名";

}

*/

//如果属性名与列名不同,则按如下处理

/*

privatestaticfinalMapmap=newHashMap();

static

{

map.put("propName","colName");

.....

//不必全部列出,只列出不相同的即可。

}

publicMappropColMap()

{

returnthis.map;

}

*/

/**

*返回主键属性集。

*@return主键属性集。

*/

publicStringkeyProps()

{

return"USERID";

}

/**系统用户标识*/

publicStringUSERID=null;

/**系统用户密码*/

publicStringPASSWD=null;

/**用户名*/

publicStringUSERNAME=null;

/**所属区域*/

publicStringREGION=null;

/**所属工作组*/

publicStringWORKGROUP=null;

/**系统用户级别*/

publicIntegerGRADE=null;

/**系统用户部门*/

publicStringDEPT=null;

/**职位*/

publicIntegerPOST=null;

/**状态*/

publicIntegerUSERSTAT=null;

/**EMAIL*/

publicStringEMAIL=null;

/**用于发送短信*/

publicStringMOBILE=null;

/**备注*/

publicStringREMARK=null;

/**构造函数*/

publicST_SYSUSER()

{

}

}

4.4.2.2业务逻辑类编写

业务逻辑类可以是普通Java类,也可以是SessionEJB,但都必须继承类charimsa.sys.bean.BusiBase。

SessionEJB必须是stateful类型,且BMT,即Bean管理事物。

建议用普通Java类实现,现在比较少用EJB。

4.4.2.2.1简单数据操作方法编写

简单数据操作主要指查询、新增、更新、删除操作,主要通过DBOpUtil类来实现,下面以系统用户管理为例,进行说明:

Ø根据主键查询:

publicST_SYSUSERgetSysUser(StringuserID)throwsChariscexception

{

ST_SYSUSERsysUser=newST_SYSUSER();//数据表类实例

sysUser.USERID=userID;//设定主键值

DBOpUtildbOpUtil=this.newDBOpUtil(Constants.SUBSYS_SYSMNG);//初始化DBOpUtil

return(ST_SYSUSER)dbOpUtil.selectOne(sysUser,"USERID");//返回结果

}

Ø查询一组数据:

publicListgetGroupUsers(intgroup)throwsChariscexception

{

ST_SYSUSERsysUser=newST_SYSUSER();//数据表类实例

sysUser.WORKGROUP=newInteger(group);//设定查询条件

DBOpUtildbOpUtil=this.newDBOpUtil(Constants.SUBSYS_SYSMNG);//初始化DBOpUtil

returndbOpUtil.select(sysUser,null,"REGION,USERID");

}

Ø新增数据

publicintinsertSysUser(ST_SYSUSERsysUser)throwsChariscexception

{

DBOpUtildbOpUtil=this.newDBOpUtil(Constants.SUBSYS_SYSMNG);//初始化DBOpUtil

returndbOpUtil.insertOne(sysUser);

}

Ø更新数据

publicintupdateSysUser(ST_SYSUSERdataObj,ST_SYSUSERcmdObj,String

updateFields)throwsChariscexception

{

DBOpUtildbOpUtil=this.newDBOpUtil(Constants.SUBSYS_SYSMNG);

returndbOpUtil.updateOne(dataObj,cmdObj,updateFields,"USERID");

}

Ø删除数据

publicintdeleteSysUser(StringuserID)throwsChariscexception

{

ST_SYSUSERsysUser=newST_SYSUSER();

sysUser.userID=userID;

DBOpUtildbOpUtil=this.newDBOpUtil(Constants.SUBSYS_SYSMNG);

returndbOpUtil.deleteOne(sysUser);

}

除以上实现方法外,DBOpUtil中还有其它许多方法,可以实现诸如批量更新、批量删除、批量新增等方法。

4.4.2.2.2复杂数据操作方法编写

复杂数据操作方法,主要通过DBMng及SQLObj来完成,通过这两个类可以完成各种数据库操作。

具体用法请参考相应的javaAPIDoc。

建议,如果对应SQL语句特别复杂,可以通过DBMng来直接执行SQL语句,而不通过SQLObj来完成。

可以将系统中所用到的复杂SQL语句集中写在一个类中,从而提高系统的可维护性。

4.4.2.2.3嵌套事物操作方法编写

通过数据库控制引擎,可以实现事务嵌套。

何为事务嵌套,比如说,A类方法aa涉及到事物,且被客户程序调用,B类方法bb也涉及到事物,也被客户程序调用,但方法bb中又调用方法aa,这样就形成了事物嵌套。

通过CHARISMA平台的数据库控制引擎实现事物嵌套的规范如下所示:

publicclassAextendsBusiBase

{

……

publicvoidaa()throwsChariscexception

{

//处理数据库操作的语句

}

……

}

publicclassBextendsBusiBaseimplementsSessionBean

{

……

publicvoidbb()throwsChariscexception

{

DBMngdbMng=newDBMng(this.getAppSession())

try

{

dbMng.beginTran();//必须在connect之前调用

dbMng.connect(this.tranDBMng,Constants.SUBSYS_SYSMNG);

Aclassa=newA(super.getAppSession());

classa.setTranEnv(dbMng);

classa.aa();//调用类A的方法aa.

……//方法bb中其它数据库操作的语句;

dbMmitTran();

}

catch(Exceptione)

{

dbMng.rollbackTran();

if(einstanceofChariscexception)

throw(Chariscexception)e;

thrownewChariscexception(Chariscexception.SYS_ERR,"",e);

}

finally

{

dbMng.disConnect();

}

}

}

其中,B类的方法bb还可以继续被其它类的方法调用,形成多级嵌套。

第5章各类业务模块实现

对于MIS,ERP等系统,大多数的业务模块属于查询、统计、新增、更新、删除等,除此还包括特殊业务模块。

5.1查询、统计模块

对于查询、统计模块,在CHARISMA平台上构建,基本上不必编写代码。

制作方法请参考“CHARISMA平台使用手册”。

5.2数据维护类模块

数据维护类模块指新增、更新、删除、批量新增、批量更新、批量删除类模块。

CHARISMA平台通过数据维护引擎为这类模块提供了非常完美的解决方案。

对于界面层显示,不必进行页面编写,通过平台进行参数定制即可,请参考“CHARISMA使用手册”。

业务逻辑处理,一般的业务逻辑都可以在数据维护资源中,通过关联操作等资源实现即可。

如果需要非常复杂的业务逻辑处理,则可以通过业务扩展来处理。

以下分别进行介绍。

1、新增资源

打开模块:

系统控制中心>>数据维护资源>>新增资源维护,即可打开新增资源维护界面,其更新界面如下所示:

重要数据项说明:

Ø标签提供类:

用户通过继承内定类charimsa.web.dbop.InsTagProvider,重载一些方法,实现一些特定的需求,主要是给某些数据项设定初始值。

一般不设定。

Ø新增处理器:

用户可以继承内定类charimsa.web.dbop.InsertHandler,重载相应的方法,对页面传过来的参数做特殊处理。

如验证数据项的合法性。

一般不设定。

Ø业务层新增类性质:

指定处理新增业务逻辑的类是普通类还是EJB;

Ø业务层新增类名:

指定处理

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
华丹 CHARISMA 平台 开发 手册
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:华丹CHARISMA平台开发手册.docx
链接地址:https://www.bdocx.com/doc/30617276.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开