最近想搞一下基于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平台数据管理常用方法整理的更多相关文章

  1. 基于java平台的常用资源整理

    这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.t ...

  2. 这里整理了基于java平台的常用资源

    这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.t ...

  3. 基于.NET平台常用的框架整理<转载>

    转载来自:http://www.cnblogs.com/hgmyz/p/5313983.html 基于.NET平台常用的框架整理   自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大 ...

  4. 基于.NET平台常用的框架整理(转)

    基于.NET平台常用的框架整理   分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问 ...

  5. Android实战简易教程-第二十八枪(基于Bmob实现头像图片设置和网络上传功能!)

    上一篇我们介绍了怎样由uri转换成String ,本文就用到了上篇文章的方法.以下我们介绍一下怎样设置头像后将头像图片上传到云端的方法,本文基于Bmob提供的服务. 看一下代码:(布局文件和前两篇文章 ...

  6. .NET平台常用框架整理

    基于.NET平台常用的框架整理   转自:http://www.cnblogs.com/hgmyz/p/5313983.html 首先谢谢楼主,以后备用 自从学习.NET以来,优雅的编程风格,极度简单 ...

  7. Android基于XMPP的即时通讯2-文件传输

    本文是在上一篇博文Android基于XMPP的即时通讯1-基本对话的基础上,添加新的功能,文件传输 1.初始化文件传输管理类 public static FileTransferManager get ...

  8. 学习笔记:APP切图那点事儿–详细介绍android和ios平台

    学习笔记:APP切图那点事儿–详细介绍android和ios平台 转载自:http://www.woofeng.cn/articles/168.html   版权归原作者所有 作者:亚茹有李 原文地址 ...

  9. JSBridge(Android和IOS平台)的设计和实现

    前言 对于商务类的app,随着app注册使用人数递增,app的运营者们就会逐渐考虑在应用中开展一些推广活动.大多数活动具备时效性强.运营时间短的特征,一般产品们和运营者们都是通过wap页面快速投放到产 ...

随机推荐

  1. vue2.0实现银行卡类型种类的选择

    功能效果:vue2.0实现银行卡类型种类的选择 图片.png 参考代码如下: <template> <div class="app"> <header ...

  2. 【Codeforces Round #451 (Div. 2) C】Phone Numbers

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用map<string,vector > dic;模拟就好. 后缀.翻转一下就变成前缀了. 两重循环剔除这种情况不输出就 ...

  3. 让我们彻底看清MVC、MVP

    这里開始记录下来自己对MVC.MVP.MVVM这三种框架模式的理解,本文从以下几个方面来梳理. 架构的目的 框架模式.设计模式 MVC设计的介绍 MVC在Android中的应用 MVC该怎样设计 MV ...

  4. 淺談Unity 5.4新功能:Light Probe Proxy Volume

    作者:CHRISTOPHER POPE 原文連結 Unity 5.4進入到Beta的階段.当中一個特別的功能是光照探頭代理Light Probe Proxy Volume(LPPV).本篇會向大家介紹 ...

  5. 1.2 Use Cases中 Metrics官网剖析(博主推荐)

    不多说,直接上干货! 一切来源于官网 http://kafka.apache.org/documentation/ Metrics 指标 Kafka is often used for operati ...

  6. 本文介绍C# BitmapData

    本文介绍C# BitmapData,对于C# BitmapData,虽然BitmapData.Width还是等于Bitmap.Width,但大概是出于显示性能的考虑.   最近要转开发平台,正研究C# ...

  7. 关于C++中用两个迭代器方式初始化string的知识

    string(iter1, iter2); 第一点:两个迭代器必须指向同一个容器. 第二点:iter2必须>=iter1. 第三点:假设iter1等于iter2,那么结果为空[] 另外一个比較特 ...

  8. Dcloud课程4 如何进行APP接口开发

    Dcloud课程4 如何进行APP接口开发 一.总结 一句话总结:通过json或者xml. 1.APP如何进行通信? 通过在地址上接参数指明传递的数据的类型.而数据传递的类型一般是XML和json. ...

  9. python3 偏最小二乘法实现

    python3的sklearn库中有偏最小二乘法. 可以参见下面的库说明:http://scikit-learn.org/stable/modules/generated/sklearn.cross_ ...

  10. ajax+客户端与服务器端的交互

    一. AJAX 原生JS var xhr=new XMLHttpRequest(); xhr.open("GET","[请求地址]",false); xhr.o ...