简介
本文档将演示如何使用UI5应用程序在HANA DB中创建/更新/删除条目。
这是我之前的文档(在HANA DB上开发UI5应用程序的逐步过程)的继续,在该文档中,我们看到了如何在UI5应用程序中显示HANA DB中的数据。
例如,永久免费的云服务器,我将使用一个已经存在的表在HANA DB中,将其暴露在odata服务中,并将数据从UI5应用程序传递到odataservice。
下面是HANA DB中的表的结构:
表已经有一些条目,如下面的屏幕截图所示:
在进入示例之前,让我们看下面的插入示例代码,使用odatamodel更新和删除hana数据库的操作。
插入
odatamodel实例上的Create方法触发数据库中的插入操作。此方法的输入为:odata服务实体集、有效负载和成功或失败事件将触发的事件处理程序函数
var mPayload={ID:"101",NAME:"Test",AGE:"20"};
oEmpDataModel.create创建("/EMPLOYEE_TAB",mPayload,云服务器服务器,null,
function(){alert("Create successful");},
function(){alert("Create failed");});
UPDATE
除了entityset name UPDATE方法外,还获取需要修改的记录的ID。
var mPayload_upd={AGE:"30"};
oEmpDataModel.update更新("/EMPLOYEE_TAB(101)",mPayload_upd,null,
function(){alert("UPDATE successful");},
function(){alert("UPDATE failed");});
DELETE
与odatamodel实例上的update method remove method类似,取要删除记录的entityset和ID。
var empId="101";
oEmpDataModel.remove删除("/EMPLOYEE_TAB("+empId+")",null
function(){alert("Delete successful");},
function(){alert("Delete failed");});
创建ODATA服务
步骤类似于上一个文档中描述的步骤,返利app怎么用,
服务{
//作为
"SCHEMANAME","EMPLOYEE"作为"EMPLOYEE\u TAB";
}
主机:港口/员工服务/雇员数据.xsodata/$metadata
在UI5应用程序中使用ODATA服务
我们还将添加一个表元素来显示数据库中的现有条目。因此,我们将能够验证EMPLOYEE表中的数据库更新。
以下是应用程序的屏幕截图:
索引.html
EmpView.view.js文件
EmpView.view.js文件文件包含UI元素和数据库插入的代码,更新或删除操作。
createContent:function(oController){
//创建一个包含2列的矩阵布局
var oMatrixMain=newsap.ui.commons.布局.MatrixLayout({layoutfix:true,columns:2});
oMatrixMain.setWidths设置宽度('5px','500px');
//创建面板实例
var oPanel=newsap.ui.commons.Panel({宽度:"400px",showCollapseIcon:false});
oPanel.SetArea设计(sap.ui.commons.枚举.AreaDesign.Plain);
oPanel.setb订单设计(sap.ui.commons.枚举.BorderDesign.None);
//设置面板标题
oPanel.setText文件("员工数据");
//创建一个包含两列的矩阵布局
var oMatrix=newsap.ui.commons.布局.MatrixLayout({layoutFixed:真,宽度:'300px',列数:2});
oMatrix.setWidths设置宽度('100px','200px');
//sap.ui.commons.Label({text:'Id});
var oInput_Id=新建sap.ui.commons.TextField({Id:"EMP_Id",width:'100%});
oLabel_Id.设置标签(输入Id);
oMatrix.createRow文件(奥拉贝尔),oInput_Id);
var oLabel_name=新建sap.ui.commons.Label({text:'Name});
var oInput_Name=新建sap.ui.commons.TextField({Id:'EMP_NAME',width:'100%});
oLabel_名称.设置标签(输入名称);
oMatrix.createRow文件(oLabel_name,oInput_name);
var oLabel_age=新建sap.ui.commons.Label({text:'Age'});
var oInput\ U age=新sap.ui.commons.TextField({Id:'EMP_AGE',width:'100%});
oLabel_年龄设定值(年龄);
oMatrix.createRow文件(oLabel_age,oInput_age);
//创建2个简单单选按钮
var oRBG2=newsap.ui.commons.RadioButtonGroup({
工具提示:"请选择操作类型",
列:3,
selectedIndex:1
});
var oRB1=新建sap.ui.core.Item({
text:'Insert',
key:'I',
tooltip:'Insert new Entry',
});
oRBG2.addItem(oRB1);
var oRB2=newsap.ui.core.Item({
text:'Update',
key:'U',
tooltip:'Update Entry',
});
oRBG2.addItem(oRB2);
var oRB3=新sap.ui.core.Item({
text:'Delete',
key:'D',
tooltip:'Remove Entry',
});
oRBG2.addItem(oRB3);
//将表单添加到面板内容区域
oPanel.addContent文件(oMatrix);
oPanel.addContent文件(oRBG2);
var oPanel2=新sap.ui.commons.Panel({width:"400px",showCollapseIcon:false});
oPanel2.SetArea设计(sap.ui.commons.枚举.AreaDesign.Plain);
oPanel2.setb订单设计(sap.ui.commons.枚举.BorderDesign.None);
//设置面板标题
oPanel2.setText("员工列表");
/*创建表以显示员工表中的记录*/
var oEmpTable=新建sap.ui.table表.Table({
选择模式:sap.ui.table表.选择模式。无,
可见行数:10,
阈值:100,
宽度:"350px",
});
//定义要使用的列和控制模板
oEmpTable.addColumn列(新建)sap.ui.table表.列({
标签:新建)sap.ui.commons.Label({text:"Employee ID"}),
模板:新建sap.ui.commons.TextView().bindProperty("text","ID"),
sortProperty:"ID",
filterProperty:"ID",
width:"120px"
});
oEmpTable.addColumn列(新建)sap.ui.table表.列({
标签:新建)sap.ui.commons.Label({text:"Name"}),
模板:新建sap.ui.commons.TextView().bindProperty("text","NAME"),
sortProperty:"NAME",
filterProperty:"NAME",
width:"120px"
});
oEmpTable.addColumn列(新建)sap.ui.table表.列({
标签:新建)sap.ui.commons.Label({text:"Age"}),
模板:新建sap.ui.commons.TextView().bindProperty("text","AGE"),
sortProperty:"AGE",
filterProperty:"AGE",
width:"80px"
});
oEmpTable.setModel(oEmpDataModel);
oEmpTable.bindRows行("/EMPLOYEE_TAB");
oPanel2.addContent(可选);
oMatrixMain.createRow文件(空,oPanel);
oMatrixMain.createRow文件(空,oPanel2);
//在面板标题中添加一些按钮
oPanel.Add按钮(新建)sap.ui.commons.Button({text:'保存',按:function()
{
var updateType=oRBG2.getSelectedItem().getKey();
var empId=oInput_Id.getValue();
var empName=oInput_name.getValue文件();
var empAge=输入_年龄.getValue();
//插入
if(updateType=='I')
{
var mPayload={ID:empId,NAME:empName,AGE:empAge};
oEmpDataModel.create创建("/EMPLOYEE_TAB",mPayload,null,
function(){alert("Create successful");},
function(){alert("Create failed");});
if(updateType='U')
{
var mPayload={NAME:empName,AGE:empAge};
oEmpDataModel.update更新("/EMPLOYEE\u TAB('"+empId+"')",mPayload,null,
function(){alert("UPDATE successful");},物联网应用技术是什么,
function(){alert("UPDATE failed");});
}
if(updateType='D')
{
oEmpDataModel.remove删除("/EMPLOYEE_TAB("+empId+")",null,
function(){alert("Delete successful");},
function(){alert("Delete failed");});
}
});
//Add Cancel button to the panel header
//oPanel.Add按钮(新建)sap.ui.commons.Button({text:'取消',按:function()
{
输入_Id.setValue设置值("");
输入_名称.设置值("");
输入_年龄.设定值("");
}});
返回oMatrixMain;
}
主机:端口/trng/EmpApp/WebContent/索引.html
测试结果:
保存后:
样品不错,非常感谢。
,云服务器价位