zoukankan      html  css  js  c++  java
  • 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();
    }
    
  • 相关阅读:
    HashMap数据结构分析(jdk8)
    ConcurrentHashMap数据结构(jdk8)
    TOJ1373_多项式规律
    Windows程序基础——Windows应用程序的基本概念
    Why to learn MFC?
    TOJ1062
    TOJ1369
    TOJ1003
    vue 生命周期~~
    如何跨域访问的两种方法~
  • 原文地址:https://www.cnblogs.com/gzhcsu/p/11203227.html
Copyright © 2011-2022 走看看