Mobile Services批量提交数据
来源:互联网 发布:上海图畅云计算招聘 编辑:程序博客网 时间:2024/06/10 07:26
Mobile Services批量提交数据,参考了文章:Inserting multiple items at once in Azure Mobile Services。里面其实已经介绍得比较清楚了,但由于是英文,而且有些地方交待得不清楚,也没有Android的示例,故下文以Android版本的开发为例作个补充。
首先在Mobile Services项目里新建AllToDoItems以及ToDoItem表,点击AllToDoItems,再点击script标签,将里面的内容替换如下:
function insert(item, user, request) { var table = tables.getTable('ToDoItem'); populateTable(table, request, item.todos);}function populateTable(table, request, films) { var index = 0; films.forEach(changeReleaseDate); var insertNext = function () { if (index >= films.length) { request.respond(201, { id: 1, status: 'Table populated successfully' }); } else { var toInsert = films[index]; table.insert(toInsert, { success: function () { index++; if ((index % 20) === 0) { console.log('Inserted %d items', index); } insertNext(); } }); } }; insertNext();} function changeReleaseDate(obj) { var releaseDate = obj.ReleaseDate; if (typeof releaseDate === 'string') { releaseDate = new Date(releaseDate); obj.ReleaseDate = releaseDate; }}
服务端的工作到此完成。
客户端新建两个类,分别如下:
package com.example.ecodriveiot;/** * Represents an item in a ToDo list */public class ToDoItem {/** * Item text */@com.google.gson.annotations.SerializedName("text")private String mText;/** * Item Id */@com.google.gson.annotations.SerializedName("id")private String mId;/** * Indicates if the item is completed */@com.google.gson.annotations.SerializedName("complete")private boolean mComplete;/** * ToDoItem constructor */public ToDoItem() {}@Overridepublic String toString() {return getText();}/** * Initializes a new ToDoItem * * @param text * The item text * @param id * The item id */public ToDoItem(String text, String id) {this.setText(text);this.setId(id);}/** * Returns the item text */public String getText() {return mText;}/** * Sets the item text * * @param text * text to set */public final void setText(String text) {mText = text;}/** * Returns the item id */public String getId() {return mId;}/** * Sets the item id * * @param id * id to set */public final void setId(String id) {mId = id;}/** * Indicates if the item is marked as completed */public boolean isComplete() {return mComplete;}/** * Marks the item as completed or incompleted */public void setComplete(boolean complete) {mComplete = complete;}@Overridepublic boolean equals(Object o) {return o instanceof ToDoItem && ((ToDoItem) o).mId == mId;}}
package com.example.ecodriveiot;public class AllToDoItems {@com.google.gson.annotations.SerializedName("id")public String id;public String status;public ToDoItem[] todos;}
批量提交的代码如下:
ToDoItem item = new ToDoItem();item.setText("test");item.setComplete(false);ToDoItem[] items = new ToDoItem[2];items[0]=item;items[1]=item;// Insert the new item/*mToDoTable.insert(item, new TableOperationCallback<ToDoItem>() {public void onCompleted(ToDoItem entity, Exception exception, ServiceFilterResponse response) {if (exception == null) {if (!entity.isComplete()) {mAdapter.add(entity);}} else {createAndShowDialog(exception, "Error");}}});*/AllToDoItems allToDoItems = new AllToDoItems();allToDoItems.todos=items;mClient.getTable(AllToDoItems.class).insert(allToDoItems, new TableOperationCallback<AllToDoItems>() {public void onCompleted(AllToDoItems entity, Exception exception, ServiceFilterResponse response) {if (exception == null) {Log.i("Debug", "status:"+entity.status);} else {createAndShowDialog(exception, "Error");}}});
上面的代码其实是在sdk demo的基础上改的,mClient的初始化自己加上即可。其他客户端的开发其实是类似的,可以查看英文原文。当然,里面的ToDoItem[] todos可以改成ArrayList<ToDoItem> todos。
0 0
- Mobile Services批量提交数据
- 批量修改数据提交
- mysql 批量数据提交jdbc
- Struts2 批量数据提交解决方案
- spring+ibatis 批量提交数据
- ADO.NET数据批量提交
- mysql批量提交数据实例
- xamarin.forms保存数据和推送通知Azure Mobile Services
- 使用数组实现oralce批量数据提交
- spring+ibatis 批量提交数据提升性能
- Struts2接收批量提交数据解决方案
- 大表数据插入批量提交
- Struts2接收JSP批量提交数据
- 批量添加数据(Form表单提交)
- 页面全选,Ajax批量提交数据
- SpringMVC获取表单批量提交数据
- WEB页面_批量操作提交数据(批量删除)
- jquery mobile 表单post无法提交数据问题
- CF#256 (Div. 2) B.
- MySQL5.6.19的安装
- mysql 详解
- CAS单点登录 (不创建项目) 直接配置版 修改版
- 阿里云团队畅谈图片服务架构演进
- Mobile Services批量提交数据
- 内存管理 之 存储器层次结构
- NGUI研究之3D模型坐标转2D屏幕坐标-血条
- Just a Hook +线段树区间更新模板题
- jenkins集群添加Windows 2012 server作为slave
- [Python]列表复制的几种方法
- Velocity 循环stop与break来实现隔行变色
- 让你的安卓设备跑起kali——kali for android
- php中$this->