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");
Ofbiz项目学习——阶段性小结——插入数据的更多相关文章
- Ofbiz项目学习——阶段性小结——删除数据
一.根据主键进行删除 /** * 按主键进行删除 * @param dctx * @param context * @return */ public static Map<String,Obj ...
- Ofbiz项目学习——阶段性小结——更新数据
一.根据一个字段进行修改 /** * 根据一个字段进行修改(这个条件字段可以是主键, 也可以不是主键) * @param dctx * @param context * @return */ publ ...
- Ofbiz项目学习——阶段性小结——视图
一.简要介绍 1.按照SQL的视图概念:在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表.视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个数据库中的真实的表中的字段. 2. ...
- Ofbiz项目学习——阶段性小结——查询
一.组装参数的学习 首先是查询条件,对于查询条件,需要判断是否从前端传递空值?——怎么处理查询空值? 当然可以一个一个进行判断,但是这样代码会导致很多,可以统一处理,形成一个公共方法. 1. 单个处理 ...
- Ofbiz项目学习——阶段性小结——服务返回结果
一.返回成功 1.在.DispatcherReturnDemoService类中编写服务[returnSuccess],内容如下: /** * 返回成功结果 * @param dctx * @para ...
- Java项目往数据库中插入数据,出现中文乱码
项目环境: JSP+Servlet+Mysql数据库 需要检查的地方: 1. java项目整体的编码格式为utf-8.并且将数据传递给数据库之前,数据是否依旧是正常的(可以通过打断点的方式一步步跟踪查 ...
- JDBC基础学习(五)—批处理插入数据
一.批处理介绍 当需要成批插入或者更新记录时.可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理.通常情况下比单独提交处理更有效率. JDBC的批量处理语句包括下 ...
- CUBRID学习笔记 22 插入数据
CREATE TABLE auto_tbl(id INT AUTO_INCREMENT, name VARCHAR); 自增长的列可以插入null, 同时一次可以插入多条记录.别的和其他的sql数据库 ...
- 吴裕雄--天生自然 PHP开发学习:MySQL 插入数据
<?php $servername = "localhost"; $username = "root"; $password = "admin& ...
随机推荐
- python 'utf-8' codec can't decode byte 0xb8 in position 0: invalid start byte
在导入csv文件中,出现如上所示的错误,经过查阅资料,解决方法如下: 方法一: pd.read_csv(file_path, encoding='unicode_escape') 方法二: pd.re ...
- Windows设置国内源阿里云镜像加速与离线安装pip包的方法
Windows设置国内源阿里云镜像加速1.先在 windows “文件资源管理器” 地址栏 输入 %APPDATA% 按回车,打开程序自定义设置文件夹然后,创建名为 pip 的文件夹,用于存放 pip ...
- mysql密码中有特殊字符&在命令行下登录
在服务器上,通常为了快速登录数据库,我们会使用mysql -hhost -uusername -ppassword db的方式登录数据库,如果密码中没有特殊字符&,会直接进入数据库sql命令行 ...
- Dubbo快速入门 二
2.dubbo核心概念 2.1).简介 Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能.轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调 ...
- 【转】潜说js对象和数组
/* 数组和对象 [JavaScript 权威指南 第五版] */ /* 对象: 是一个无序属性集合, 每个属性都有自己的名字和值 */ /* 创建对象简单方法, 对象直接量 */ var obj = ...
- ELK学习笔记之ELK6.0 X-pack设置用户名和密码
$ bin/elasticsearch-plugin install x-pack -> Downloading x-pack from elastic [=================== ...
- mvn clean -U -e -B -X的作用 查看详细出错信息
https://blog.csdn.net/u014515854/article/details/79820497 在持续集成服务器上使用怎样的 mvn 命令集成项目,这个问题乍一看答案很显然 ...
- c#读取数据库bool值
数据库里bit这个布尔类型的字段,非常实用,但是在c#里读取时,许多人喜欢犯一些错误,导致运行报错. 实际中,有效的正确读取方法只有以下两种: int xxx= Convet.ToInt16(read ...
- 记录一次使用NPOI遇到的问题
在.net 下一般使用NPOI操作Excel相信大家都不陌生,但是本人在操作过程中遇到一个比较奇怪的问题,特写此博客记录与大家分享. 例子是使用Winform,点击按钮时弹出打开文件对话框,然后选择文 ...
- POI SXSSF API 导出1000万数据示例
SXSSF是XSSF API的兼容流式扩展,在必须生成非常大的电子表格.并且堆空间有限时使用. SXSSF通过限制对滑动窗口内数据的访问实现低内存占用,而XSSF允许访问文档中的所有行. 不在窗口中的 ...