当前位置:首页 > EMP2.2变化及影响
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定义(注意多了一个模板引擎接口的定义):
2.4. 调用存储过程组件的定义方式更改
? 涉及范围
com.ecc.emp.jdbc.procedure包
? 更改原因
【设计变更】原有调用存储过程服务ProcedureAccessService是通过设置opClass调用不同数据库对应的操作类,现改为与SQLService和TableService一致的定义方法,通过不同的Service类来进行不同处理。 ? 配置示例
? 涉及范围
com.ecc.emp.comm.MQ包
? 更改原因
【设计变更】原有MQ组件存在大量问题,因此重新从CTP将MQ通讯组件进行移植。 ? 配置示例
? 涉及范围
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的方式进行辅助定义。 ? 配置示例
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
? 更改原因
共分享92篇相关文档