一、根据一个字段进行修改

		/**
* 根据一个字段进行修改(这个条件字段可以是主键, 也可以不是主键)
* @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项目学习——阶段性小结——更新数据的更多相关文章

  1. Ofbiz项目学习——阶段性小结——删除数据

    一.根据主键进行删除 /** * 按主键进行删除 * @param dctx * @param context * @return */ public static Map<String,Obj ...

  2. Ofbiz项目学习——阶段性小结——插入数据

    一.通用插入操作 /** * * 编写一个服务createUomOneDemo, * 该服务的作用是在表Uom中增加一条记录,其中: * 字段uomId的值为“BaseLineProduct”. * ...

  3. Ofbiz项目学习——阶段性小结——视图

    一.简要介绍 1.按照SQL的视图概念:在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表.视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个数据库中的真实的表中的字段. 2. ...

  4. Ofbiz项目学习——阶段性小结——查询

    一.组装参数的学习 首先是查询条件,对于查询条件,需要判断是否从前端传递空值?——怎么处理查询空值? 当然可以一个一个进行判断,但是这样代码会导致很多,可以统一处理,形成一个公共方法. 1. 单个处理 ...

  5. Ofbiz项目学习——阶段性小结——服务返回结果

    一.返回成功 1.在.DispatcherReturnDemoService类中编写服务[returnSuccess],内容如下: /** * 返回成功结果 * @param dctx * @para ...

  6. mybatis学习之路----批量更新数据两种方法效率对比

    原文:https://blog.csdn.net/xu1916659422/article/details/77971696/ 上节探讨了批量新增数据,这节探讨批量更新数据两种写法的效率问题. 实现方 ...

  7. Cassandra1.2文档学习(10)—— 插入和更新数据

    参考数据:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_ ...

  8. MySQL更新数据时,日志(redo log、binlog)执行流程

    1:背景 项目需要做Es和数据库的同步,而手动在代码中进行数据同步又是Es的一些不必要的数据同步操作和业务逻辑耦合,所以使用的了读取mysql的binlog日志的方式进行同步Es的数据. 问题1:根据 ...

  9. android: SQLite更新数据

    学习完了如何向表中添加数据,接下来我们看看怎样才能修改表中已有的数据. SQLiteDatabase 中也是提供了一个非常好用的 update()方法用于对数据进行更新,这个方法 接收四个参数,第一个 ...

随机推荐

  1. Maven 教程(14)— Maven聚合与继承

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79553011 1.Maven聚合 我们在平时的开发中,项目往往会被划分为好几个模 ...

  2. 解决Spring和SpringMVC扫描注解类的冲突问题

    原文地址:https://blog.csdn.net/xiaobao5214/article/details/52042041 最正确的配置方式:在主容器中applicationContext.xml ...

  3. C#调用摄像头(AForge)实现扫描条码解析(Zxing)功能

    网上找了很多代码,都比较零散,以下代码纯自己手写,经过测试.下面有链接,下载后可以直接使用. 介绍: 自动识别:点击Start按钮会调用PC摄像头,代码内置Timer,会每100毫秒识别一下当前摄像头 ...

  4. OpenGL学习 (一) - 简单窗口绘制

    一.OpenGL 简介 OpenGL 本质: OpenGL(Open Graphics Library),通常可以认为是API,其包含了一系列可以操作图形.图像的函数.但深究下来,它是由Khronos ...

  5. .Net Core 指定编码格式的问题

    我们在读取txt文件时,如果文件格式不是utf8,则获取的中文会乱码,所以要么另存文件为utf8格式,要么使用和文件相同的编码来读取. 如果文件为utf8,则: //一种 StreamReader s ...

  6. (原创)使用C#开发PLC上位机监控系统客户端应用程序

    PLC客户端监控系统的特点: 0.客户端系统软件可部署在 多个管理层的PC机上,或者需要部署在距离服务器较远区域的PC机上,通过网线连接到服务器端的交换机. 1应用范围: (1)所有客户端都只有监视功 ...

  7. 配置 Log4j 以便查看 MyBatis 操作数据库的过程

    在 src/main/resources中添加 log4j.properties 配置文件 ,输入如下内 容.#全局面已直 log4j .rootLogger=ERROR, stdout #MyBat ...

  8. 颜色rgba和16进制

    今天阅读代码的时候看到了一个实现颜色渐变的效果,不同于以往使用函数实现的颜色渐变,这个是规律的递增rgba里面的几个参数完成的,看起来就像是等差数列一样.没想到还能这样来,简单的了解了一下 rgba的 ...

  9. 2019 中兴java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.中兴等公司offer,岗位是Java后端开发,因为发展原因最终选择去了中兴,入职一年时间了,也成为了面试官,之 ...

  10. Java3-5年经验面试题总结

    记录一下本次找工作所遇到的一些高频面试题,第一次找java工作,感觉比面试.net舒服多了,17年的时候出去找.net工作,由于在公司做的东西用到的技术少,除了mvc和ef,其他没啥问的,就追着项目问 ...