前后台交互机制

本文详细阐述了前后台交互的整个流程,包括前台如何封装数据、通过HTTP发送请求,后台如何接收、解析请求,拼接SQL并执行,以及如何返回响应给前台。涉及到的技术栈包括Java、C#、SQL等,同时提到了数据库操作、接口服务配置、数据传输的序列化和反序列化等关键环节。
摘要由CSDN通过智能技术生成

GpTradeColumnName.java,把我们前台传过来的对象(pojo)里面的参数对应我们表中的字段
Form:将前台数据封装成对应的pojo对象,就是我们前台主界面
pojo 数据传到后台,通过配置接口服务(systemconfig.xml),通过服务的id找到对应的接口和pojo对象,在前台基类的方法中将数据转换成json形式,通过请求发送到后台对应的接口中。配置前台控件参数用的,封装属性
Service:这个是往后台传输对象数据的接口
配置前台服务:在systemConfig.xml中配置
后台需要在pojoMap,xml,list_head.xml,serviceMap.xml,配置路径信息
后台接口获得数据之后,对数据进行逻辑处理
存入数据库
前台:
①:将前台选择数据封装对象A
⑤:获取后台对象B,将处理后的对象B数据在前台页面展示
后台:
②:对象A进行处理
④:获取数据库数据,封装成对象B
数据库:
③:数据处理,返回后台
前台:设计我们的功能界面(例如登录、查询神马的),工具(VS 2008)
后台:处理我们业务数据,对接数据库,进行业务、数据处理,工具(Eclipse)
数据库:存储我们的业务数据,增删改查,工具(Oracle)
SELECT 要返回的列或表达式 是
FROM 从中检索数据的表 仅在从表选择数据时使用
WHERE 行级过滤 否
GROUP BY 分组说明 仅在按组计算聚集时使用
HAVING 组级过滤 否
ORDER BY 输出排序顺序 否

前后台交互机制

查询机制
步骤:
封装查询条件:list界面类Form_TRADE_IVT_GP_L 继承FrmBaseList基类
每个list类重写基类OnGetParaAssemble()方法

封装接口、接口方法、pojo、查询条件,并转换成json:
1.把查询数据封装到字典Dictionary<string, string>
List页面复写OnGetParaAssemble()方法中获取初始的查询条件
2.把对应的pojo类名封装到字典,获取方法为
FrmBaseList类中的getMainListDataMVC()方法中
PojoUtil.getPojoShortName语句获取对应的pojo作为dataClass封装到参数中
3.根据getMainListDataMVC()获取页面插叙的列表信息pa’raDict
4.getMainListDataMVC方法中调用getQueryResultMVC(paraDict,true)方法执行具体方式进行执行请求数据,其中true为是否传输数据
5.getMainListDataMVC方法中将分页的参数封装成PageInation
6.getMainListDataMVC方法中调用 QueryRes res = getQueryResultMVC(paraDict, pageIn)方法获取后台传回的参数封装到res中
7.在getQueryResultMVC中通过dataservice调用queryByCondition(paraDict,pageLns)方法执行返回后端执行结果
8.然后进入到代理类Ty’pe’Creater中的invoke方法中,里面封装了http可进行调用
9.进入代理类中调用BuildTransferData方法进行数据转换,把请求参数转化为json
10.invoke方法里面的SendStringToServers(lcTransferString, lcSiteInfo);进行服务的访问与调用实现

将json通过http发送给后台:
1.TypeCreater类的invoke方法中通过WebRequest.Create通过url建立一个HttpWebReauest请求
2.通过requestStream.write()方法将数据写入到流中传输到后端
3.通过request.GetResponse()方法得到响应结果
4.返回响应结果

后台接收并解析json字符串:
1.使用的是SysUtil中的getBytesFromClient(HttpServletRequest request)方法接受
通过字节流方式获取到request内数据,返回字节数组
2.在ClientDataTransferServerData类中的getTransStructureObj方法进行json转换调用request解析器,将字符串用JsonUtil.toBean()方法解析成服务端传输对象TransStructure

通过解析出的接口名查找对应的service:
1.在ServiceMapUtil类中调用getServiceMaps(String svcId, boolean needNewService)方法通过serviceID得到Set集合
2.在ServiceBalanceUtil类中调用doBlanceService方法经过灰度以及环境负载规则之后,匹配任何一个服务ServiceMap
3.调用YssServiceFactory类中的createService(ServiceMap serviceMap)方法通过ServiceMap得到一个目标服务对象YssServiceFactory.getInstance().createService(serviceMap);

通过接口名、方法名反射到对应的接口实现类,调用查询方法:
1.通过反射获得目标service所有method方法返回方法数组serviceTarget.getClass().getMethods()
2.调用MethodExecuteUtil中的getInvoiceMethod方法根据参数类型,和方法名确定具体放得到具体方法MethodExecuteUtil.getInvoiceMethod(methods,transStructure)
3.执行目标类里面的目标方法method.invoke(serviceTarget, methodArgs);

根据传入的查询参数拼接查询sql:
1.在类EtfMainTradeSqlBuilder中的getQueryConditionSql发发中进行sql拼接getQueryConditionSql(List paraNameList)
2.拼接共用查询
3.通过setWhereSql(valueFieldbuf, paraNameList)方法拼接查询条件
4.判断字段名字与传过来的参数列表是否包含,包含即添加一个条件
5.拼接排序等设置
6.在类DaoImpl中的uildPagingSql方法拼接分页设置

执行sql查询数据:
通过PreparedStatement的excuteQuery执行查询返回结果

根据传入的pojo封装查询结果list:
1.在TradeDataCommonService查询结果返回List 具体为 List dataList = queryRes.getDataList();
具体为执行sql返回结果封装到BasePojo中
然后存入到List
2.循环强转成具体的pojo类
EtfMainTrade trade = (EtfMainTrade) basePojo;

根据menuid查出listhead.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值