Ofbiz项目学习——阶段性小结——插入数据
一、通用插入操作
/** * * 编写一个服务createUomOneDemo, * 该服务的作用是在表Uom中增加一条记录,其中: * 字段uomId的值为“BaseLineProduct”、 * 字段abbreviation的值为“BLP”、 * 字段description的值为“基线产品” * @param dctx * @param context * @return */ public static Map<String,Object> createUomOneDemo( DispatchContext dctx, Map<String,Object> context) { //取得实体引擎实例 GenericDelegator delegator = dctx.getDelegator(); //创建一条Uom记录的对象 GenericValue oneUom = delegator.makeValue("Uom"); //向其中加入每个字段对应的数据 oneUom.setString("uomId","BaseLineProduct"); oneUom.setString("abbreviation", "BLP"); oneUom.setString("description", "基线产品"); try { //保存到数据库的Uom表中 oneUom.create(); } catch (GenericEntityException e) { //则把错误信息以Error级别打印到日志文件中 Debug.logError(e, module); //把指定的错误码对应的描述信息返回给服务调用者 Return ReturnMapUtil.getErrorMap( DemoErrorMapping.BASE0001,oneUom.toString()); } //把表示成功的信息返回给服务调用者 return ReturnMapUtil.getSuccessMap(); }
二、自动产生主键的插入操作(一)
/** * * 编写一个服务createUomTwoDemo, * 该服务的作用是在表Uom中增加一条记录,其中: * 字段uomId要求自动生成、 * 字段abbreviation的值为“Cashm”, * 字段description的值为“现金管理系统” * @param dctx * @param context * @return */ public static Map<String,Object> createUomTwoDemo(DispatchContext dctx, Map context){ //取得实体引擎实例 GenericDelegator delegator = dctx.getDelegator(); //创建一条Uom记录的对象 GenericValue oneUom = delegator.makeValue("Uom"); //向其中加入每个字段对应的数据 String uomId = delegator.getNextSeqId("Uom"); //该方法用于自动创建一个实体的主键编号, 这里创建了Uom表的主键(uomId)的编号 oneUom.setString("uomId",uomId); oneUom.setString("abbreviation", "Cashm"); oneUom.setString("description", "现金管理系统"); /** * 一般通过如下代码添加属性 * Map<String,Object> fields = FastMap.newInstance(); * String uomId = delegator.getNextSeqId("Uom"); * fields.put("uomId",uomId); * fields.put("abbreviation","Cashm"); * fields.put("description","现金管理系统"); * GenericValue SingleUom = delegator.makeValue("Uom", fields); * SingleUom.create(); */ try { //保存到数据库的Uom表中 oneUom.create(); } catch (GenericEntityException e) { //则把错误信息以Error级别打印到日志文件中 Debug.logError(e, module); //把指定的错误码对应的描述信息返回给服务调用者 return ReturnMapUtil.getErrorMap(DemoErrorMapping.BASE0001,oneUom.toString()); } //把表示成功的信息返回给服务调用者 return ReturnMapUtil.getSuccessMap(); } }
二、自动产生主键的插入操作(二)
// 委托引擎 Delegator delegator = dctx.getDelegator(); // 获取GenericValue GenericValue genericValue = delegator.makeValue("实体映射表名称"); // 获取自增主键 genericValue.setNextSeqId(); // 设置非主键字段 Map<? extends Object, ? extends Object> fields genericValue.setNonPKFields(fields); // 还有一些需要单独处理 genericValue.set(key, value, true); // 创建一条记录 GenericValue oneRecord = delegator.create(genericValue); // 如果需要获取主键id Object id = oneRecord.get("id");
posted on 2019-07-17 19:37 betterLearing 阅读(266) 评论(0) 编辑 收藏 举报