Android 基于Bmob平台数据管理常用方法整理
最近想搞一下基于Bmob平台的应用开发,发现确实挺方便的,很好的解决了服务器后台部署的难题,
但是也有一些弊端,数据架构的可扩展性不强,做一些数据结构简单的应用还是可以的。
package com.bmob.utils; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import android.content.Context; import android.util.Log; import android.widget.Toast; import cn.bmob.v3.BmobObject; import cn.bmob.v3.BmobQuery; import cn.bmob.v3.listener.DeleteListener; import cn.bmob.v3.listener.FindCallback; import cn.bmob.v3.listener.FindListener; import cn.bmob.v3.listener.GetListener; import cn.bmob.v3.listener.SaveListener; import cn.bmob.v3.listener.UpdateListener; import com.bmob.base.BombApplication; /** * @Date 2016-6-12 下午2:17:55 * @Author Arvin * @Description Bmob数据处理工具类 */ public class BmobUtils { public static final String TAG = "BmobUtils"; public static Context mContext = BombApplication.getInstance(); public static List<BmobObject> queryBeans = new ArrayList<BmobObject>(); public static BmobObject bmobObject = new BmobObject(); /*****************************数据保存************************/ /** * @Description 批量数据保存 * @param List<BmobObject> * @return void * @throws */ public static void saveBatch(List<BmobObject> list) { new BmobObject().insertBatch(mContext, list, new SaveListener() { @Override public void onSuccess() { showToast("批量增加成功"); } @Override public void onFailure(int arg0, String arg1) { showToast(arg1 + "批量增加失败"); } }); } /** * @Description 单一数据保存 * @param BmobObject * @return return_type * @throws */ public static void saveSignle(BmobObject object) { object.save(mContext, new SaveListener() { @Override public void onSuccess() { showToast("增加成功"); } @Override public void onFailure(int arg0, String arg1) { showToast(arg1 + "增加失败"); } }); } /*****************************查询*************************/ /** * @Description 查询所有数据并封装(不支持指定tabName) * @param null * @return void * @throws */ public static void queryTable() { BmobQuery<BmobObject> query = new BmobQuery<BmobObject>(); query.findObjects(mContext, new FindListener<BmobObject>() { @Override public void onSuccess(List<BmobObject> objects) { // TODO Auto-generated method stub showToast("查询成功"); } @Override public void onError(int arg0, String arg1) { showToast(arg1 + "查询失败"); } }); } /** * @Description 查询指定table中所有数据解析并封装(解析JSONArray) * @param null * @return void * @throws */ public static void queryData(String tabName){ BmobQuery query = new BmobQuery(tabName); query.findObjects(mContext , new FindCallback() { @Override public void onSuccess(JSONArray jsonArray) { //注意:查询的结果是JSONArray,需要自行解析 Log.i(TAG, "查询成功:"+jsonArray.length()); } @Override public void onFailure(int arg0, String arg1) { Log.i(TAG, "查询失败:"+arg1); } }); } /** * @Description 传值,指定字段进行条件查询(不支持指定tabName) * @param String key , String searchVal * @return void * @throws */ public static void queryName(String key , String searchVal) { if (searchVal.equals("")) { return; } BmobQuery<BmobObject> query = new BmobQuery<BmobObject>(); query.addWhereEqualTo(key, searchVal); //条件查询 query.findObjects(mContext, new FindListener<BmobObject>() { @Override public void onSuccess(List<BmobObject> objects) { showToast("查询成功"); //实现数据封装的逻辑 } @Override public void onError(int arg0, String arg1) { // TODO Auto-generated method stub showToast(arg1+"查询失败"); } }); } /** * @Description 根据objectId ,查询单条数据(不支持指定tabName) * @param String objectId * @return return_type * @throws */ public static void querySingleData(String objectId){ BmobQuery<BmobObject> query = new BmobQuery<BmobObject>(); query.getObject(mContext, objectId, new GetListener<BmobObject>() { @Override public void onSuccess(BmobObject object) { // TODO Auto-generated method stub showToast("查询成功:"); //实现数据封装的逻辑 } @Override public void onFailure(int code, String arg0) { // TODO Auto-generated method stub showToast("查询失败:" + arg0); } }); } /** * @Description 查询多条数据 /根据列值查询 (不支持指定tabName) * @param String key , String queryVal * @return return_type * @throws */ public static void queryMultiData(String key , String queryVal){ BmobQuery<BmobObject> query = new BmobQuery<BmobObject>(); query.addWhereEqualTo(key, queryVal); //条件查询 //返回50条数据,如果不加上这条语句,默认返回10条数据 query.setLimit(); //执行查询方法 query.findObjects(mContext, new FindListener<BmobObject>() { @Override public void onSuccess(List<BmobObject> objects) { // TODO Auto-generated method stub showToast("查询成功:共" + objects.size() + "条数据。"); //实现数据封装的逻辑 } @Override public void onError(int code, String msg) { // TODO Auto-generated method stub showToast("查询失败:" + msg); } }); } /** * @Description 查询指定列 (不支持指定tabName) * @param String key * @return void * @throws */ public static void queryRow(String key){ //只返回Lost表的objectId这列的值 BmobQuery<BmobObject> bmobQuery = new BmobQuery<BmobObject>(); bmobQuery.addQueryKeys(key); bmobQuery.findObjects(mContext, new FindListener<BmobObject>() { @Override public void onSuccess(List<BmobObject> objects) { // TODO Auto-generated method stub showToast("查询成功:共" + objects.size() + "条数据。"); //实现数据封装的逻辑 } @Override public void onError(int code, String msg) { // TODO Auto-generated method stub showToast("查询失败:" + msg); } }); } /** * @Description 对数据进行排序 * @param BmobQuery<BmobObject> query , String key * @return void * @throws */ public static void orderData(BmobQuery<BmobObject> query , String key){ // 根据score字段升序显示数据 query.order("key"); // 根据score字段降序显示数据 query.order("-key"); } /********************************数据更新******************************/ /** * @Description 批量更新数据 * @param List<BmobObject> list * @return void * @throws */ public static void updateBatch(List<BmobObject> list) { if(list.size() == ){ showToast("数据不存在,请先插入"); return; } new BmobObject().updateBatch(mContext, list, new UpdateListener() { @Override public void onSuccess() { showToast("批量修改成功"); } @Override public void onFailure(int arg0, String arg1) { showToast(arg1 + "批量修改失败"); } }); } /** * @Description 根据指定的objectId修改元素 * @param BmobObject , String * @return void * @throws */ public static void updateById(BmobObject bmobObject , String objectId){ bmobObject.update(mContext, objectId, new UpdateListener() { @Override public void onSuccess() { showToast("修改成功"); } @Override public void onFailure(int arg0, String arg1) { showToast(arg1 + "修改失败"); } }); } /** * @Description 修改更新BmobObject对象 * @param BmobObject * @return void * @throws */ public static void updateObject(BmobObject bmobObject){ bmobObject.update(mContext , new UpdateListener() { @Override public void onSuccess() { // TODO Auto-generated method stub showToast("修改成功"); } @Override public void onFailure(int arg0, String arg1) { // TODO Auto-generated method stub showToast(arg1 + "修改失败"); } }); } /***********************************数据删除***********************************/ /** * @Description 批量删除数据 * @param tags * @return return_type * @throws */ public static void deleteBatch(List<BmobObject> objects) { new BmobObject().deleteBatch(mContext, objects, new DeleteListener() { @Override public void onSuccess() { showToast("批量删除成功"); } @Override public void onFailure(int arg0, String arg1) { showToast(arg1 + "批量删除失败"); } }); } /** * @Description 根据objectId删除BmobObject对象 * @param BmobObject ,String * @return void * @throws */ public static void deleteById(BmobObject object , String objectId) { //根据指定的objectId修改元素 object.delete(mContext , objectId , new DeleteListener() { @Override public void onSuccess() { showToast("删除成功"); } @Override public void onFailure(int arg0, String arg1) { showToast(arg1 + "删除失败"); } }); } /** * @Description 删除BmobObject对象 * @param BmobObject * @return void * @throws */ public static void deleteData(BmobObject object) { object.delete(mContext, new DeleteListener() { @Override public void onSuccess() { showToast("删除成功"); } @Override public void onFailure(int arg0, String arg1) { showToast("删除失败"); } }); } /** * @Description 显示Toast信息(msg) * @param tags * @return return_type * @throws */ public static void showToast(String msg){ Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show(); } /** * @Description 显示Toast信息(id) * @param tags * @return return_type * @throws */ public static void showToast(int resId){ Toast.makeText(mContext, resId, Toast.LENGTH_SHORT).show(); } }
Android 基于Bmob平台数据管理常用方法整理的更多相关文章
- 基于java平台的常用资源整理
这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.t ...
- 这里整理了基于java平台的常用资源
这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.t ...
- 基于.NET平台常用的框架整理<转载>
转载来自:http://www.cnblogs.com/hgmyz/p/5313983.html 基于.NET平台常用的框架整理 自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大 ...
- 基于.NET平台常用的框架整理(转)
基于.NET平台常用的框架整理 分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问 ...
- Android实战简易教程-第二十八枪(基于Bmob实现头像图片设置和网络上传功能!)
上一篇我们介绍了怎样由uri转换成String ,本文就用到了上篇文章的方法.以下我们介绍一下怎样设置头像后将头像图片上传到云端的方法,本文基于Bmob提供的服务. 看一下代码:(布局文件和前两篇文章 ...
- .NET平台常用框架整理
基于.NET平台常用的框架整理 转自:http://www.cnblogs.com/hgmyz/p/5313983.html 首先谢谢楼主,以后备用 自从学习.NET以来,优雅的编程风格,极度简单 ...
- Android基于XMPP的即时通讯2-文件传输
本文是在上一篇博文Android基于XMPP的即时通讯1-基本对话的基础上,添加新的功能,文件传输 1.初始化文件传输管理类 public static FileTransferManager get ...
- 学习笔记:APP切图那点事儿–详细介绍android和ios平台
学习笔记:APP切图那点事儿–详细介绍android和ios平台 转载自:http://www.woofeng.cn/articles/168.html 版权归原作者所有 作者:亚茹有李 原文地址 ...
- JSBridge(Android和IOS平台)的设计和实现
前言 对于商务类的app,随着app注册使用人数递增,app的运营者们就会逐渐考虑在应用中开展一些推广活动.大多数活动具备时效性强.运营时间短的特征,一般产品们和运营者们都是通过wap页面快速投放到产 ...
随机推荐
- 在Sql中将 varchar 值 '1,2,3,4,5,6' 转换成数据类型 int
--问题:将aa转换为Int类型失败 string aa="3,5,11,56,88,45,23"; select * from ERPBuMen where ID in(aa) ...
- SpringMVC,Mybatis,FreeMarker连接mycat示例(一)
首页 > 程序开发 > 软件开发 > Java > 正文 SpringMVC,Mybatis,FreeMarker连接mycat示例(一) 项目结构如图: 首先是各种配置文件, ...
- Kurento应用开发指南(以Kurento 5.0为模板) 之中的一个:简单介绍,安装与卸载
文件夹 1. Kurento是什么 3 2. Kurento简单介绍 3 2.1 WebRTC媒体server ...
- Nginx日志优化
一 日志轮训切割 [root@centos7 tools]# cat nginx_log.sh #!/bin/bash cd /var/log/nginx/ &&\ /bin/mv a ...
- 在设置了android:parentActivityName后,点击子Activity返回键,父Activity总会调用OnDestroy()的解决方式
近期查了非常久这个事情.分享给大家, 原理非常easy,一个Activity在manifet里声明了android:parentActivityName:这时候通过Activity左上角的返回butt ...
- 防止登录页面出如今frame中
在使用frame页面嵌套开发的时候,遇到重新启动了server的时候会出现登录页面在frame页面中出现, 所以须要在登录页面里面用js推断下当前的地址信息,然后跳转到登录的单独页面中. js代码例如 ...
- angular 响应式自定义表单控件—注册头像实例
1. 组件继承ControlValueAccessor,ControlValueAccessor接口需要实现三个必选方法 writeValue() 用于向元素中写入值,获取表单的元素的元素值 regi ...
- 应用Python来计算排列中的逆序数个数
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数.一个排列中所有逆序总数叫做这个排列的逆序数.也就是说,对于 ...
- 【剑指offer】对面和相等的正方体
转载请注明出处:http://blog.csdn.net/ns_code/article/details/26509459 剑指offer上的全排列相关题目. 输入一个含有8个数字的数组.推断有么有可 ...
- linux cmd cp -a
cp -a 在保留原文件属性的前提下复制文件 cp -r dirname destdir 复制目录后其文件属性会发生变化 想要使得复制之后的目录和原目录完全一样,可以使用cp -a dirn ...