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;
}
}

服务端的工作到此完毕。

client新建两个类。分别例如以下:

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() { } @Override
public 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;
} @Override
public 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的初始化自己加上就可以。其它client的开发事实上是类似的,能够查看英文原文。当然,里面的ToDoItem[] todos可以改变的ArrayList<ToDoItem> todos。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Mobile Services 提交批量数据的更多相关文章

  1. SQL Server 利用批量(batchsize)提交加快数据生成/导入

    在最小化日志操作解析,应用的文章中有朋友反映生成测试数据较慢.在此跟大家分享一个简单的应用,在生成数据过程中采用批量提交的方式以加快数据导入. 此应用不光生成测试数据上,在BCP导入数据中,复制初始化 ...

  2. Azure Mobile Services的REST API调用方式和自定义API

    Azure Mobile Services(移动服务)是微软在Azure平台中提供的一种跨平台的移动应用后端服务,即移动后端即服务.支持.NET和JavaScript(Node.js)写后端代码:支持 ...

  3. C#利用SqlDataAdapte对DataTable进行批量数据操作

    C#利用SqlDataAdapte对DataTable进行批量数据操作,可以让我们大大简化操作数据的代码量,我们几乎不需要循环和不关心用户到底是新增还是修改,更不用编写新增和修改以及删除的SQL语句, ...

  4. PHP 在表单POST提交后数据分页实现,非GET,解决只有第一页显示正确的问题

    //PHP 在表单POST提交后数据分页实现,非GET,使用SESSION,分页代码部分不在详述,主要为POST后的 除第一页之外的显示问题 //以下为ACTION页面 内容,仅为事例,当判断到页面未 ...

  5. Mysql 函数定义及批量数据脚本

    零.说在前面 在定义函数之前 需要先将 log_bin_trust_function_creators 值设为开启,原因如下 在主从复制的两台Mysql服务器中,slaver会从master复制数据, ...

  6. Yii 开发微信 '您提交的数据无法被验证'

    使用Yii开发微信时,出现 [error][yii\web\HttpException:] exception 'yii\web\BadRequestHttpException' with messa ...

  7. 模拟提交API数据Pyqt版

    其实这个模拟提交数据之前已经写过篇: Python requests模拟登录 因为现在在做的项目中需要一个debug请求调试API,用PHP的CURL写了一个,又因Pyqt更能直观灵活的显示请求的参数 ...

  8. 解决Yii2 启用_csrf验证后POST数据仍提示“您提交的数据无法验证”

    一 CSRF 概念 CSRF(Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XS ...

  9. asp.net 一次性提交大量数据,服务器会报错,要在 web.config 中设置一下

    web.config <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应 ...

随机推荐

  1. GitLal+sourceTree版本号管理

    GitLab+sourceTree版本号管理 假设把代码提交到github上,仅仅能是公开的,除非你花钱了,可是我不想花钱,所以我选择了gitLab作为gitserver,使用gitLab的详细过程例 ...

  2. ubuntu下使用自带的openJDK查看java源码

    如题 Ubuntu自带的OpenJDK仅仅有jre环境,不提供源代码,所以我们还是须要去下载. JDK6:http://download.java.net/openjdk/jdk6/ JDK7:htt ...

  3. Android使用应用程序资源(、颜色数组、尺寸、弦、布尔、整型)

    一.Android资源分类详细解释   1.Android资源类别 Android中的资源分为两大类 : 可直接訪问的资源, 无法直接訪问的原生资源; -- 直接訪问资源 : 这些资源能够使用 R. ...

  4. 一个简单而经典的RTX51 Tiny应用实例

    关于RTX51 Tiny嵌入式实时操作系统的描写叙述请參考本人的上一篇博文(RTX51 Tiny实时操作系统学习笔记-初识RTX51 Tiny). 本篇博文.我将通过一个实例代码,带大家深入了解一下R ...

  5. jquery autocomplete ajax获取动态数据,兼容各浏览器,支持中文

    jquery.autocomplete.js经过改动,支持各种浏览器.支持中文输入! 1.效果图例如以下 2.HTML和ajax代码 <!DOCTYPE html> <html xm ...

  6. 一篇哥们自己的写的IBM电话面试感想-@大国

    两天没写博了,还是没有养成一个习惯.前天和昨天休息,和哥们几个出去打球,运动一下,放松下脑子.今天就补一篇我哥们自己的写的关于他的IBM电话面试的感想,希望能帮到有需要的人. ------------ ...

  7. OpenCms创建网站的过程示意图——专用OpenCms人们刚开始学习

    很多人听说过OpenCms,我知道它的强大,只需下载并安装,最后,我们看到了久违OpenCms,我们看到了它的简单的界面,喜悦之后,但难免困惑.如何用这个东西,我如何用它来网站,从哪里开始,无从下手. ...

  8. 採用Android中的httpclient框架发送post请求

    /** * 採用httpclientPost请求的方式 * * @param username * @param password * @return null表示求得的路径有问题,text返回请求得 ...

  9. C语言static 具体分析

    google在最后三页C语言static内容,可找到的资料非常少.无论是长篇大论不知所云的话,在关键位置或跳过,习的人来说參考性不是非常大.所以.我这篇博文博採众家之长,把互联网上的资料整合归类,并亲 ...

  10. Oracle SQL Lesson (11) - 创建其他数据库对象(试图/序列/索引/同义词)

    schema(模式)一个用户下一组对象的集合,一般与用户名一致. 视图 CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias].. ...