第一范文网 - 专业文章范例文档资料分享平台

EMP2.2变化及影响

来源:用户分享 时间:2025/10/14 5:03:01 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

com.ecc.emp.jdbc.table包

? 更改原因

【bug修改】原有组件在拼接分页查询SQL的时候,排序部分放在了最内层,而有些数据库(如Derby)不支持。现改为放在最外层。

【bug修改】tableSequenceColumn属性只有在静态分页时才需必填,原有组件在执行入口处就进行了属性控制判断,导致动态分页也必须填写该属性。现将判断改为在动态分页内部进行。

【bug修改】原有组件未将maxLine返回给前端。现将该参数返回。 ? 配置示例

只是内部实现的更改,对配置文件不会造成影响。

2.3. 新增基于模板引擎的动态SQL组件

? 涉及范围

com.ecc.emp.jdbc.sql包 com.ecc.emp.template包

? 更改原因

【新功能】管理系统中经常会用到动态条件组合查询,而现有EMP的数据库组件无法支持。为了提高EMP数据库组件的灵活性,提供基于模板引擎的动态SQL组件,通过SQL模板的定义,在运行时根据输入条件动态产生最终的SQL语句,从而实现更复杂的数据库操作。另外也支持模糊查询。 ? 配置示例

DynamicSQLDefine会将Context以“_DATA”的名称传入模板引擎作为输入参数,因此可以通过$_DATA.get(数据名)的方法取到EMP数据的值。一个典型的条件组合查询的SQL模板如下: SELECT * FROM USERINFO WHERE 1=1 #if ($_DATA.get('id')) AND ID=?id #end #if ($_DATA.get('name')) AND NAME=?name #end #if ($_DATA.get('address')) AND ADDR=?address #end 该SQL模板在经过velocity处理之后,会把未输入的条件去掉,从而实现动态条件组合查询的功能。另外,SQL模板的输入项以“问号+数据名”的方式进行定义,在处理时会进行解析并通过setObject方法设置到PreparedStatement中,以防止SQL注入攻击。 以下是一个完整的DynamicSQLDefine定义(注意多了一个模板引擎接口的定义): 和普通的SQLDefine不同的是,由于输入和输出参数的个数不能事先确定,因此不能通过paramIdx属性来指定参数顺序,而是通过dataName(输入)和columnName(输出)来进行与EMP数据的对应。此外,由于输入参数实际上是定义在模板内(?数据名形式),因此子标签下的定义只用于定义每个数据对应的字段类型。若没有定义某个数据对应的字段类型,则默认为VARCHAR。

2.4. 调用存储过程组件的定义方式更改

? 涉及范围

com.ecc.emp.jdbc.procedure包

? 更改原因

【设计变更】原有调用存储过程服务ProcedureAccessService是通过设置opClass调用不同数据库对应的操作类,现改为与SQLService和TableService一致的定义方法,通过不同的Service类来进行不同处理。 ? 配置示例 2.5. TableModel(2.2暂不考虑) 2.6. MQ通讯组件的修改

? 涉及范围

com.ecc.emp.comm.MQ包

? 更改原因

【设计变更】原有MQ组件存在大量问题,因此重新从CTP将MQ通讯组件进行移植。 ? 配置示例 详细配置方法请参照技术手册。 2.7. BizLogicCaller调用业务逻辑的定义方式和实现修改

? 涉及范围

com.ecc.emp.processor.modelupdate.EMPBusinessLogicCaller com.ecc.emp.processor.modelupdate.BizCallerInputModelUpdater com.ecc.emp.processor.modelupdate.BizCallerOutputModelUpdater

? 更改原因

【设计变更】原有BizLogicCaller是在Action下挂input和output定义,按照该定义进行数据复制,而无视掉了biz的input/output定义,处理存在逻辑问题。现将其改为与mvc一样的处理方式,以biz的input/output定义为准交换数据,并通过在Action下挂BizCallerInput/OutModelUpdater的方式进行辅助定义。 ? 配置示例 ? 注意 此处的处理和mvc不同的地方是,没有定义updateRule的数据将不会被交换(mvc则是进行同名映射)。因此在BizLogicCaller中必须为所有需要交换的数据显式定义updateRule。

2.8. 对SimpleActions中定义多个数据项的属性分隔符进行

统一

? 涉及范围

com.ecc.emp.action.CopyDataValueAction com.ecc.emp.action.GenXMLRetPackAction com.ecc.emp.action.SetFieldErrorMsgAction com.ecc.emp.action.SetValueAction

? 更改原因

【设计变更】原有数据操作Action中定义多个数据项的属性采用的分隔符不一致,IDE无法进行统一编辑器处理。现统一改为分号“;”分隔。 ? 配置示例 ? 注意 为了向下兼容,也支持以前的定义方式。

3. 表现逻辑框架与相关组件

3.1. 业务逻辑无状态化对MVC定义和实现的修改

? 涉及范围

com.ecc.emp.web包及各子包 com.ecc.emp.flow.modelupdate

com.ecc.emp.flow.EMPFlowExecuteResult

com.ecc.emp.component.xml.ServletContextParser 由于Controller的接口发生变化,而影响到的子类: com.ecc.emp.web.portlet.mvc.EMPRequestController com.ecc.emp.search.lucene.SearchController com.ecc.emp.search.lucene.SearchIndexController com.ecc.emp.monitor.MonitorController

? 更改原因

搜索更多关于: EMP2.2变化及影响 的文档
EMP2.2变化及影响.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4a80l4jc9j7k6x46aj7o_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top