Ofbiz项目学习——阶段性小结——更新数据
一、根据一个字段进行修改
/**
* 根据一个字段进行修改(这个条件字段可以是主键, 也可以不是主键)
* @param dctx
* @param context
* @return
*/
public static Map<String,Object> updateUomByOneField(
DispatchContext dctx, Map<String,Object> context ){ //取得实体引擎实例
GenericDelegator delegator = dctx.getDelegator(); //添加需要修改的字段
Map<String,Object> updateFields = FastMap.newInstance();
updateFields.put("description", "修改后的现金管理系统"); //这里删除前面创建的基线产品信息
/*.... 如果有其它字段需要修改, 还可以继续把要修改的值放到updateFields中.*/ //设置修改条件
EntityCondition updateCon = EntityCondition.makeCondition("abbreviation", EntityComparisonOperator.EQUALS,"Cashm");
try {
//执行按条件修改操作
delegator.storeByCondition("Uom", updateFields, updateCon); } catch (GenericEntityException e) {
Debug.logError(e, module); //把指定的错误码对应的描述信息返回给服务调用者
return ReturnMapUtil.getErrorMap(DemoErrorMapping.BASE0005,updateCon.toString(),e.getMessage());
} //把表示成功的信息返回给服务调用者
return ReturnMapUtil.getSuccessMap();
}
二、根据多条件进行修改
/**
* 根据多个字段进行修改(这个条件字段可以是主键, 也可以不是主键)
* @param dctx
* @param context
* @return
*/
public static Map<String,Object> updateUomByMoreField( DispatchContext dctx, Map<String,Object> context ){ //取得实体引擎实例
GenericDelegator delegator = dctx.getDelegator(); //添加需要修改的字段
Map<String,Object> updateFields = FastMap.newInstance();
updateFields.put("uomTypeId", "OTHER_MEASURE"); //这里删除前面创建的基线产品信息
/*.... 如果有其它字段需要修改, 还可以继续把要修改的值放到updateFields中.*/ //设置修改条件
List<EntityCondition> updateConList = FastList.newInstance();
updateConList.add( EntityCondition.makeCondition("abbreviation", EntityComparisonOperator.EQUALS,"BLP") );
updateConList.add( EntityCondition.makeCondition("description", EntityComparisonOperator.EQUALS,"基线产品") );
/*.... 如果有其它的修改条件, 还可以继续把修改条件放到updateConList中*/ EntityCondition updateCondition = EntityCondition.makeCondition(updateConList, EntityOperator.AND);
try {
//执行按条件修改操作
delegator.storeByCondition("Uom", updateFields, updateCondition); } catch (GenericEntityException e) {
Debug.logError(e, module);
//把指定的错误码对应的描述信息返回给服务调用者
return ReturnMapUtil.getErrorMap(DemoErrorMapping.BASE0005,updateCondition.toString(),e.getMessage());
} //把表示成功的信息返回给服务调用者
return ReturnMapUtil.getSuccessMap();
}
三、对一个已经查询出的记录进行修改
/**
* 对已经查询出的记录进行修改
* @param dctx
* @param context
* @return
*/
public static Map<String,Object> updateUomAfterQuery( DispatchContext dctx, Map<String,Object> context ){ //取得实体引擎实例
GenericDelegator delegator = dctx.getDelegator(); //获取服务引擎
LocalDispatcher dispatcher = dctx.getDispatcher(); //先调用查询服务从Uom表中查询出基线产品信息
Map<String,Object> queryInput = FastMap.newInstance();
Map<String,Object> queryOutput = null;
try {
queryOutput = dispatcher.runSync("queryUomByPrimaryKey", queryInput);
} catch (GenericServiceException e) {
Debug.logError(e, module);
//把指定的错误码对应的描述信息返回给服务调用者
return ReturnMapUtil.getErrorMap(DemoErrorMapping.BASE0007,e.getMessage());
} //根据返回Map检查服务是否执行成功
if( !ServiceUtil.isSuccess(queryOutput)){
return queryOutput;
} //从返回结果中取出查询到的基线产品信息
GenericValue oneUom = (GenericValue) queryOutput.get("oneUom"); //修改基线产品信息中的描述
oneUom.setString("description", "修改后的基线产品信息"); //保存
try {
oneUom.store();
} catch (GenericEntityException e) {
Debug.logError(e, module);
//把指定的错误码对应的描述信息返回给服务调用者
return ReturnMapUtil.getErrorMap(DemoErrorMapping.BASE0008,e.getMessage());
}
//返回
return ReturnMapUtil.getSuccessMap();
}
Ofbiz项目学习——阶段性小结——更新数据的更多相关文章
- Ofbiz项目学习——阶段性小结——删除数据
一.根据主键进行删除 /** * 按主键进行删除 * @param dctx * @param context * @return */ public static Map<String,Obj ...
- Ofbiz项目学习——阶段性小结——插入数据
一.通用插入操作 /** * * 编写一个服务createUomOneDemo, * 该服务的作用是在表Uom中增加一条记录,其中: * 字段uomId的值为“BaseLineProduct”. * ...
- Ofbiz项目学习——阶段性小结——视图
一.简要介绍 1.按照SQL的视图概念:在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表.视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个数据库中的真实的表中的字段. 2. ...
- Ofbiz项目学习——阶段性小结——查询
一.组装参数的学习 首先是查询条件,对于查询条件,需要判断是否从前端传递空值?——怎么处理查询空值? 当然可以一个一个进行判断,但是这样代码会导致很多,可以统一处理,形成一个公共方法. 1. 单个处理 ...
- Ofbiz项目学习——阶段性小结——服务返回结果
一.返回成功 1.在.DispatcherReturnDemoService类中编写服务[returnSuccess],内容如下: /** * 返回成功结果 * @param dctx * @para ...
- mybatis学习之路----批量更新数据两种方法效率对比
原文:https://blog.csdn.net/xu1916659422/article/details/77971696/ 上节探讨了批量新增数据,这节探讨批量更新数据两种写法的效率问题. 实现方 ...
- Cassandra1.2文档学习(10)—— 插入和更新数据
参考数据:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_ ...
- MySQL更新数据时,日志(redo log、binlog)执行流程
1:背景 项目需要做Es和数据库的同步,而手动在代码中进行数据同步又是Es的一些不必要的数据同步操作和业务逻辑耦合,所以使用的了读取mysql的binlog日志的方式进行同步Es的数据. 问题1:根据 ...
- android: SQLite更新数据
学习完了如何向表中添加数据,接下来我们看看怎样才能修改表中已有的数据. SQLiteDatabase 中也是提供了一个非常好用的 update()方法用于对数据进行更新,这个方法 接收四个参数,第一个 ...
随机推荐
- Metasploaitable和侦察httrack-安全牛课堂网络安全之Web渗透测试练习记录
环境配置 首先在网上下载kali的镜像以及Metasploaitable虚拟机,打开按照网上教程安装好kali虚拟机,另一边打开Metasploaitable虚拟机,进入输入初始账户msfadmin, ...
- [原创]小巧免杀的端口转发工具PortTran(附.net源码)
0x001 简介 PortTran by k8gege.NET版端口转发工具,支持任意权限下转发 0x002 背景工具在2016年左右写的,当时某个内网不知何原故LCX用不了 由于Win2003才刚停 ...
- react项目中怎么使用http-proxy-middleware反向代理跨域
第一步 安装 http-proxy-middleware npm install http-proxy-middleware 我们这里面请求用的axios,在将axios安装一下 npm instal ...
- Springboot Actuator之十二:actuator aop
前言spring 中aop是一个核心概念,spring boot 是如何实现自动化配置的?现在我们就来分析一下 解析spring boot 中自动化配置是读取/META-INF/spring.fact ...
- 2014百度之星 Information
Information Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- C语言创建链表
一.链表中结点的存储 链表的结点左边一部分是存放的数据,右边一部分是后继指针指向下一个结点的地址.C语言中通常定义一个结构体类型来存储一个结点,如下: struct node { int data; ...
- kubeadm初始化集群
通过kubeadm创建集群本地测试非常方便,以下就简单记录下初始化需要的基本命令,环境准备这里不做说明 简单记录kubeadm初始化集群的基本命令 # 初始化集群 kubeadm init --kub ...
- C# vb .net图像合成-合成矩形
在.net中,如何简单快捷地实现图像合成呢,比如合成文字,合成艺术字,多张图片叠加合成等等?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码 ...
- xshell连接本地linux虚拟机速度很慢的解决办法
今天发现用xshell连接centos太慢,网上查询后发现是因为ssh的服务端在连接时会自动检测dns环境是否一致导致的,修改为不检测即可. 修改文件位置:vi /etc/ssh/sshd_confi ...
- Matlab享元模式
享元模式(Flyweight)通过共享技术实现相同或相似对象的重用,可以减少创建对象的数量,以减少内存占用和提高性能.Java String的常量池,python logging,线程池,数据库连接池 ...