云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > EMP2.2变化及影响

EMP2.2变化及影响

  • 62 次阅读
  • 3 次下载
  • 2025/6/1 4:41:53

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变化及影响 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

com.ecc.emp.jdbc.table包 ? 更改原因 【bug修改】原有组件在拼接分页查询SQL的时候,排序部分放在了最内层,而有些数据库(如Derby)不支持。现改为放在最外层。 【bug修改】tableSequenceColumn属性只有在静态分页时才需必填,原有组件在执行入口处就进行了属性控制判断,导致动态分页也必须填写该属性。现将判断改为在动态分页内部进行。 【bug修改】原有组件未将maxLine返回给前端。现将该参数返回。 ? 配置示例 只是内部实现的更改,对配置文件不会造成影响。 2.3. 新增基于模板引擎的动态SQL组件 ? 涉及范围 com.ecc.emp.jdbc.sql包 com.ecc.emp.template包 ? 更改原因

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com