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页面快速投放到产 ...
随机推荐
- less中混合
@charset "UTF-8"; //1 普通混合 //2 不带输出的混合:加() .font_hx(){ font-size: 28px; color: red; } h1{ ...
- Linux系统捕获数据包流程
Linux系统捕获数据包流程 为了提高数据包的捕获效率,瓶颈问题是一个需要非常关注的焦点.减少在捕获数据包过程中的瓶颈,就能够提高数据包捕获的整体性能.下面本文将以Linux操作系统为平台,分析捕获数 ...
- Codefroces 832B Petya and Exam
B. Petya and Exam time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- Vue自定义函数挂到全局方法
方法一:使用Vue.prototype //在mian.js中写入函数 Vue.prototype.getToken = function (){ ... } //在所有组件里可调用函数 this.g ...
- 使用JOTM实现分布式事务管理(多数据源)
使用spring和hibernate可以很方便的实现一个数据源的事务管理,但是如果需要同时对多个数据源进行事务控制,并且不想使用重量级容器提供的机制的话,可以使用JOTM达到目的. JOTM的配置十分 ...
- [Redux] Understand Redux Higher Order Reducers
Higher Order Reducers are simple reducer factories, that take a reducer as an argument and return a ...
- linux下多进程的文件拷贝与进程相关的一些基础知识
之前实现了用文件IO的方式能够实现文件的拷贝,那么对于进程而言,我们是否也能够实现呢? 答案是肯定的. 进程资源: 首先我们先回想一下,进程的执行须要哪些资源呢?其资源包含CPU资源,内存资源,当然还 ...
- 【习题 6-3 UVA - 536】 Tree Recovery
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 递归题 [代码] #include <bits/stdc++.h> using namespace std; const ...
- 【Codeforces Round #446 (Div. 2) C】Pride
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 想一下,感觉最后的结果肯定是从某一段开始,这一段的gcd为1,然后向左和向右扩散的. 则枚举那一段在哪个地方. 我们设这一段中所有的 ...
- STL之vector容器的实现框架
说明:本文仅供学习交流,转载请标明出处,欢迎转载. 实现vector容器的思路等同于实现一个动态数组,以下我们參照源代码的相关资料,给出一个vector容器的大致框架,仅仅有声明,没给出详细的实现. ...