sap 创建odata服务,通过http向数据库 进行增删改查
https://blog.csdn.net/stone0823/article/details/71057172
1:通过 事物码 se11 创建 数据库表 zemp。表 zemp中 含有empid, empname, empadd 字段。 激活。
2: 通过事物码 segw 创建服务。
3: 创建 project。 点击project>create, 给定工程名> zempprj3
4: 根据外部的数据结构来定义一个 数据模型。
DATA MODEL 右键> import >ddic structure(导入外部结构)。
定义 模型名 为employee ,结构与表 zemp 相同。
5: 选择数据模型使用哪些字段
6: 将empid 设置为主键key
7: 创建entity set (直接使用EmployeeSet也一样), 在右边的entity set 上面右键> 输入 entity set 的名字和类型名字(与上面创建的data model名字一样)
8: 为上面创建的 employeeCollection 选择都能进行那些操作。(赋予哪些权限)
9:生成运行时对象。
保存,激活。 弹出下面的框
或者选中左边 Panel 的 Runtime Artifacts,点击 Generate Runtime Objects 按钮,系统进入下面的界面:
10: 生产运行时对象。
11:注册服务, 点击 register
12: 给定系统别名
13: 保存,给定服务名等。
14: 点击 maintain
15: 点击 call browser 或者 gatway
16: 返回状态码200 ,说明开启服务成功。
17: 编辑 create 方法,使其能够向数据库添加数据, create 右键> go to abap workbench
18:选中需要重写的方法,右键 redefine。
重写employeecollect_create_entity 如下。 保存激活。
method EMPLOYEECOLLECTI_CREATE_ENTITY.
DATA: ls_employee TYPE zemp.
" Get requested data from input
io_data_provider->read_entry_data( IMPORTING es_data = er_entity ).
MOVE-CORRESPONDING er_entity TO ls_employee.
INSERT zemp FROM ls_employee.
endmethod.
重写 getentityset 方法。
method EMPLOYEECOLLECTI_GET_ENTITYSET.
SELECT * FROM zemp
INTO CORRESPONDING FIELDS OF TABLE et_entityset.
endmethod.
重写 delete方法
method EMPLOYEECOLLECTI_DELETE_ENTITY.
DATA: ls_key_tab TYPE /iwbep/s_mgw_name_value_pair,
l_empid TYPE zemp-empid,
ls_employee TYPE zemp.
WRITE 'PROCESS'.
READ TABLE it_key_tab WITH KEY name = 'Empid' INTO ls_key_tab.
l_empid = ls_key_tab-value.
DELETE FROM zemp WHERE EMPID = l_empid.
endmethod.
19: 使用get 方法查询 数据库中的数据。/sap/opu/odata/sap/ZEMPPRJ3_SRV/EmployeeCollection?$format=json
20: 向数据库添加数据,调用 create方法,使用post方法,后台根据 提交方式决定调用哪一个方法。
可以将查询的数据save as request,查询的数据将会 放入 到 提交内容框内, 改变其中的数据,进行post。
返回状态码 201 代表插入成功。
21: 查询数据库内容如下:
22: 对数据内容进行删除
23: 返回 204 ,代表删除成功。
24: 数据库表
sap 创建odata服务,通过http向数据库 进行增删改查的更多相关文章
- django之创建第8-1个项目-数据库之增删改查/数据库数据显示在html页面
1.为test.DB数据库预先创建下面数据 1 张三 16 2015-01-02 12 李四 17 2015-01-04 13 王五 14 ...
- 【转载】通过JDBC对MySQL数据库的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- 9.5Django操作数据库的增删改查
2018-9-5 18:10:52 先贴上笔记 day61 2018-04-28 1. 内容回顾 1. HTTP协议消息的格式: 1. 请求(request) 请求方法 路径 HTTP/1.1\r\n ...
- java程序设计课期中考试——数据库的增删改查和简单的js界面
首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他 ...
- java web数据库的增删改查详细
本次课上实验是完成数据库的增删改查. 包括增加用户信息.删除用户信息.多条件查找用户信息.修改用户信息(主要是复选框单选框等的相关操作.) 下面下看一下各个界面的样子. 总页面:显示全部页面:增加页面 ...
- Android学习---数据库的增删改查(sqlite CRUD)
上一篇文章介绍了sqlite数据库的创建,以及数据的访问,本文将主要介绍数据库的增删改查. 下面直接看代码: MyDBHelper.java(创建数据库,添加一列phone) package com. ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Asp.net MVC4 使用EF实现数据库的增删改查
EF的使用 步骤: (1)将EF添加到项目:在Model右击添加新建项 找到ADO.NET实体数据模型,接着... (2)实现数据库的增删改查 查询 (因为在Model中已经添加EF实体了 ...
- 使用EF实现数据库的增删改查
EF的使用步骤:(1)将EF添加到项目:在Model右击添加新建项找到ADO.NET实体数据模型,接着…(2)实现数据库的增删改查查询(因为在Model中已经添加EF实体了,所以就可以在Control ...
随机推荐
- Git使用基础篇
Git使用基础篇 前言 Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版 本控制工具可以对开发产生如此之多 ...
- RPM二进制包软件安装
通过rpm –qa查找已安装的软件包 如果想精确查找某一软件,可以通过管道命令grep来实现 精确查找rpm –qa |grep关键词 如 rpm –qa |grep vim 卸载已安装rpm包 ...
- asp.net利用存储过程分页代码
-最通用的分页存储过程 -- 获取指定页的数据 CREATE PROCEDURE Pagination ), -- 表名 ) = '*', -- 需要返回的列 )='', -- 排序的字段名 , -- ...
- 这些简单实用的Word技巧,你get了吗
快速选中多个对象 如果需要将某些文本设置成相同的格式,我们不需要一个个的设置,只要选中多个文本然后一起设置就可以了. 单击开始——选择编辑——选择——选择格式相似的文本 快速清除所有格式 那么当我们不 ...
- cc2650-cc2640蓝牙开发准备手记
1.安装 ti关键库,首先BLE 协议栈,安装那种协议栈,首先你要用哪种库(源代码,官方例子基于哪种用哪个就会好,不然会出现不兼容), 2.然后安装flash_programmer2(有1,.2个版 ...
- 一道hive SQL面试题
一.hive中实现方法 基表: 组表: gt gid gname 1001 g1 1002 g2 1003 g3 create table g( gid int, gname string )ro ...
- hung_task_timeout_secs和blocked for more than 120 seconds的解决方法
Linux系统出现hung_task_timeout_secs和blocked for more than 120 seconds的解决方法 Linux系统出现系统没有响应. 在/var/log/me ...
- 一种历史详细记录表,完整实现:CommonOperateLog 详细记录某用户、某时间、对某表、某主键、某字段的修改(新旧值
一种历史详细记录表,完整实现:CommonOperateLog 详细记录某用户.某时间.对某表.某主键.某字段的修改(新旧值). 特别适用于订单历史记录.重要财务记录.审批流记录 表设计: names ...
- Java 输入/输出——Java虚拟机读写其它进程的数据
使用 Runtime对象的exec()方法可以运行平台上的其它程序,该方法产生一个Process对象,Process对象代表由该Java程序启动的子进程.Process类提供了如下三个方法,用于让程序 ...
- python 查找函数的用法
python的导入模块:python解释器先检查当前目录下的导入的模块,如果没有找到再检查sys模块中path中的变量(import sys,sys.path),如果没有找到,就会发生错误.可以使用脚 ...