上篇文章简单的利用Bmob实现了用户注册与登录效果(http://blog.csdn.net/a123demi/article/details/42059621)。
在项目中,对数据的操作脱离不了增删改查。Bmob其实也一样,他对数据操作的增删改查做了很好的封装,以及其批量的处理。本文将重点讲解利用Bmob实现Android端与Bmob服务端的数据操作,实现增加、修改、删除以及他们的批量处理。
源码路径:http://download.csdn.net/detail/a123demi/8296591
代码执行效果:
具体内容如下:
在进行数据操作之前,首先我们得定义一个继承于BmobObject的实体。因为Bmob基本上是通过这个实体来对数据进行增删改查的操作。本文将建立一个关于用户信息的实体类,如下:UserBean.java
<span style="font-family:SimSun;font-size:18px;">package com.example.bmobdatademo.bean; import cn.bmob.v3.BmobObject; /** * 用户信息实体类 * @author * */ public class UserBean extends BmobObject { private static final long serialVersionUID = 762796567708784658L; private String userId; private String password; private String userName; public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } }</span>
Bmob实现单个对象增加的方法其实很简单,就是利用BmobObject自带的save(Context context , SaveListener saveListener)方法
<span style="font-family:SimSun;font-size:18px;"><span style="white-space:pre"> </span>userBean.save(this, new SaveListener() { @Override public void onSuccess() { // TODO Auto-generated method stub } @Override public void onFailure(int arg0, String arg1) { // TODO Auto-generated method stub } });</span>
Bmob对于批量增加的方法为insertBatch(Context context,List<BmobObject> list,SaveListener saveListener),
<span style="font-family:SimSun;font-size:18px;"> new BmobObject().insertBatch(this, userBeans, new SaveListener() { @Override public void onSuccess() { } @Override public void onFailure(int arg0, String arg1) { } });</span>
注意:其中userBeans是对象BmobObject的集合
具体代码如下:
package com.example.bmobdatademo.ui; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import cn.bmob.v3.BmobObject; import cn.bmob.v3.BmobQuery; import cn.bmob.v3.listener.FindListener; import cn.bmob.v3.listener.SaveListener; import com.example.bmobdatademo.R; import com.example.bmobdatademo.bean.UserBean; import com.example.bmobdatademo.utils.ToastUtil; public class AddActivity extends Activity { private EditText userIdEt, userNameEt, passwordEt; private Button addBtn, batchAddBtn,queryBtn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_data_add); initView(); } private void initView() { userIdEt = (EditText) this.findViewById(R.id.id_user_id_et); userNameEt = (EditText) this.findViewById(R.id.id_user_name_et); passwordEt = (EditText) this.findViewById(R.id.id_password_et); addBtn = (Button) this.findViewById(R.id.id_add_btn); batchAddBtn = (Button) this.findViewById(R.id.id_batch_btn); queryBtn = (Button) this.findViewById(R.id.id_query_add_btn); addBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub add(); } }); batchAddBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub batchAdd(); } }); queryBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub query(); } }); } /** * 批量增加 */ protected void batchAdd() { List<BmobObject> userBeans = initUserBeans(5); new BmobObject().insertBatch(this, userBeans, new SaveListener() { @Override public void onSuccess() { ToastUtil.toast(AddActivity.this, "批量增加成功"); } @Override public void onFailure(int arg0, String arg1) { ToastUtil.toast(AddActivity.this, arg1 + "批量增加失败"); } }); } /** * 增加 */ protected void add() { UserBean userBean = (UserBean) initUserBeans(1).get(0); userBean.save(this, new SaveListener() { @Override public void onSuccess() { ToastUtil.toast(AddActivity.this, "增加成功"); } @Override public void onFailure(int arg0, String arg1) { ToastUtil.toast(AddActivity.this, arg1 + "增加失败"); } }); } /** * 初始化实体对象 * * @param count * @return */ private List<BmobObject> initUserBeans(int count) { List<BmobObject> userBeans = new ArrayList<BmobObject>(); for (int i = 0; i < count; i++) { UserBean userBean = new UserBean(); userBean.setUserId(userIdEt.getText().toString() + i); userBean.setUserName(userNameEt.getText().toString() + i); userBean.setPassword(passwordEt.getText().toString()); userBeans.add(userBean); } return userBeans; } /** * 修改 */ protected void query() { BmobQuery<UserBean> query = new BmobQuery<>(); query.findObjects(this, new FindListener<UserBean>() { @Override public void onError(int arg0, String arg1) { ToastUtil.toast(AddActivity.this, arg1 + "查询失败"); } @Override public void onSuccess(List<UserBean> userBeanList) { // TODO Auto-generated method stub ToastUtil.toast(AddActivity.this, showMsg(userBeanList)); } }); } /** * 弹出提示 * @param userBmobObjects * @return */ private String showMsg(List<UserBean> userBmobObjects){ String msg = ""; if(userBmobObjects.size() == 0){ msg = "数据不存在!"; } for(UserBean userBean:userBmobObjects){ msg += userBean.getObjectId() + "," + userBean.getUserId() + "," + userBean.getUserName() + "," + userBean.getPassword() + "\n"; } return msg; } }
Bmob实现单个对象修改方法
update(Context context,UpdateListener updateListener)默认修改Bmob服务器第一行元素
update(Context context,String objectId,UpdateListener updateListener) 根据objectId修改指定元素
<span style="font-family:SimSun;font-size:18px;">userBean.update(this,userBean.getObjectId(), new UpdateListener() { @Override public void onSuccess() { ToastUtil.toast(UpdateActivity.this, "修改成功"); } @Override public void onFailure(int arg0, String arg1) { ToastUtil.toast(UpdateActivity.this, arg1 + "修改失败"); } });</span>
<span style="font-family:SimSun;font-size:18px;">new BmobObject().updateBatch(this, queryBeans, new UpdateListener() { @Override public void onSuccess() { ToastUtil.toast(UpdateActivity.this, "批量修改成功"); } @Override public void onFailure(int arg0, String arg1) { ToastUtil.toast(UpdateActivity.this, arg1 + "批量修改失败"); } });</span>
修改具体代码:
<span style="font-family:SimSun;font-size:18px;">package com.example.bmobdatademo.ui; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import cn.bmob.v3.BmobObject; import cn.bmob.v3.BmobQuery; import cn.bmob.v3.listener.FindListener; import cn.bmob.v3.listener.UpdateListener; import com.example.bmobdatademo.R; import com.example.bmobdatademo.bean.UserBean; import com.example.bmobdatademo.utils.ToastUtil; public class UpdateActivity extends Activity { private EditText userIdEt, userNameEt, passwordEt; private Button updateBtn, batchUpdateBtn,queryUpdateBtn; private List<BmobObject> queryBeans = new ArrayList<BmobObject>(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_data_update); initView(); } private void initView() { userIdEt = (EditText) this.findViewById(R.id.id_user_id_update_et); userNameEt = (EditText) this.findViewById(R.id.id_user_name_update_et); passwordEt = (EditText) this.findViewById(R.id.id_password_update_et); updateBtn = (Button) this.findViewById(R.id.id_update_btn); queryUpdateBtn = (Button) this.findViewById(R.id.id_query_update_btn); batchUpdateBtn = (Button) this.findViewById(R.id.id_batch_update_btn); updateBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub update(); } }); batchUpdateBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub batchUpdate(); } }); queryUpdateBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub query(); } }); } /** * 批量修改 */ protected void batchUpdate() { if(queryBeans.size() == 0){ ToastUtil.toast(this, "数据不存在,请先插入"); <span style="white-space:pre"> </span>return;} //修改数据 for(int i = 0; i < queryBeans.size(); i++){ UserBean userBean =(UserBean) queryBeans.get(i); userBean.setUserId(userIdEt.getText().toString() + i); userBean.setUserName(userNameEt.getText().toString() + i); userBean.setPassword(passwordEt.getText().toString()); } new BmobObject().updateBatch(this, queryBeans, new UpdateListener() { @Override public void onSuccess() { ToastUtil.toast(UpdateActivity.this, "批量修改成功"); } @Override public void onFailure(int arg0, String arg1) { ToastUtil.toast(UpdateActivity.this, arg1 + "批量修改失败"); } }); } /** * 修改 */ protected void update() { if(queryBeans.size() == 0){ ToastUtil.toast(this, "无数据,请先插入!"); return; } UserBean userBean = (UserBean)queryBeans.get(0); userBean.setUserId(userIdEt.getText().toString() + "33333"); userBean.setUserName(userNameEt.getText().toString()); userBean.setPassword(passwordEt.getText().toString()); /** * 根据指定的objectId修改元素 */ userBean.update(this,userBean.getObjectId(), new UpdateListener() { @Override public void onSuccess() { ToastUtil.toast(UpdateActivity.this, "修改成功"); } @Override public void onFailure(int arg0, String arg1) { ToastUtil.toast(UpdateActivity.this, arg1 + "修改失败"); } }); /** * 默认修改Bmob服务器第一行元素 */ // userBean.update(this , new UpdateListener() { // // @Override // public void onSuccess() { // // TODO Auto-generated method stub // ToastUtil.toast(UpdateActivity.this, "修改成功"); // } // // @Override // public void onFailure(int arg0, String arg1) { // // TODO Auto-generated method stub // ToastUtil.toast(UpdateActivity.this, arg1 + "修改失败"); // } // }); } /** * 修改 */ protected void query() { BmobQuery<UserBean> query = new BmobQuery<>(); query.findObjects(this, new FindListener<UserBean>() { @Override public void onError(int arg0, String arg1) { ToastUtil.toast(UpdateActivity.this, arg1 + "查询失败"); } @Override public void onSuccess(List<UserBean> userBeanList) { // TODO Auto-generated method stub ToastUtil.toast(UpdateActivity.this, showMsg(userBeanList)); convertUserToObject(userBeanList); } }); } /** * 弹出提示 * @param userBmobObjects * @return */ private String showMsg(List<UserBean> userBmobObjects){ String msg = ""; for(UserBean userBean:userBmobObjects){ msg += userBean.getObjectId() + "," + userBean.getUserId() + "," + userBean.getUserName() + "," + userBean.getPassword() + "\n"; } return msg; } /** * 将子类集合转换为基类BmobObject集合 * @param userBeanList * @return */ private List<BmobObject> convertUserToObject(List<UserBean> userBeanList){ queryBeans.clear(); for(UserBean userBean: userBeanList){ queryBeans.add(userBean); } return queryBeans; } } </span>
Bmob实现单个对象删除方法
delete(Context context,DeleteListener deleteListener)默认删除Bmob服务器第一行元素
delete(Context context,String objectId,DeleteListenerdeleteListener) 根据objectId删除指定元素
<span style="font-family:SimSun;font-size:18px;">userBean.delete(this,userBean.getObjectId(), new DeleteListener() { @Override public void onSuccess() { ToastUtil.toast(DeleteActivity.this, "删除成功"); } @Override public void onFailure(int arg0, String arg1) { ToastUtil.toast(DeleteActivity.this, arg1 + "删除失败"); } });</span>
<span style="font-family:SimSun;font-size:18px;"> new BmobObject().deleteBatch(this, queryBeans, new DeleteListener() { @Override public void onSuccess() { ToastUtil.toast(DeleteActivity.this, "批量删除成功"); } @Override public void onFailure(int arg0, String arg1) { ToastUtil.toast(DeleteActivity.this, arg1 + "批量删除失败"); } });</span>
<span style="font-family:SimSun;font-size:18px;">package com.example.bmobdatademo.ui; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import cn.bmob.v3.BmobObject; import cn.bmob.v3.BmobQuery; import cn.bmob.v3.listener.DeleteListener; import cn.bmob.v3.listener.FindListener; import com.example.bmobdatademo.R; import com.example.bmobdatademo.bean.UserBean; import com.example.bmobdatademo.utils.ToastUtil; public class DeleteActivity extends Activity { private Button deleteBtn, batchdeleteBtn,querydeleteBtn; private List<BmobObject> queryBeans = new ArrayList<BmobObject>(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_data_delete); initView(); } private void initView() { deleteBtn = (Button) this.findViewById(R.id.id_delete_btn); querydeleteBtn = (Button) this.findViewById(R.id.id_query_delete_btn); batchdeleteBtn = (Button) this.findViewById(R.id.id_batch_delete_btn); deleteBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub delete(); } }); batchdeleteBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub batchDelete(); } }); querydeleteBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub query(); } }); } /** * 批量删除 */ protected void batchDelete() { if(queryBeans.size() == 0){ ToastUtil.toast(this, "数据不存在,请先插入"); <span style="white-space:pre"> return;</span>} new BmobObject().deleteBatch(this, queryBeans, new DeleteListener() { @Override public void onSuccess() { ToastUtil.toast(DeleteActivity.this, "批量删除成功"); } @Override public void onFailure(int arg0, String arg1) { ToastUtil.toast(DeleteActivity.this, arg1 + "批量删除失败"); } }); } /** * 删除 */ protected void delete() { if(queryBeans.size() == 0){ ToastUtil.toast(this, "无数据,请先插入!"); return; } UserBean userBean = (UserBean)queryBeans.get(0); /** * 根据指定的objectId修改元素 */ userBean.delete(this,userBean.getObjectId(), new DeleteListener() { @Override public void onSuccess() { ToastUtil.toast(DeleteActivity.this, "删除成功"); } @Override public void onFailure(int arg0, String arg1) { ToastUtil.toast(DeleteActivity.this, arg1 + "删除失败"); } }); /** * 默认删除Bmob服务器第一行元素 */ // userBean.delete(this , new deleteListener() { // // @Override // public void onSuccess() { // // TODO Auto-generated method stub // ToastUtil.toast(deleteActivity.this, "删除成功"); // } // // @Override // public void onFailure(int arg0, String arg1) { // // TODO Auto-generated method stub // ToastUtil.toast(deleteActivity.this, arg1 + "删除失败"); // } // }); } /** * 修改 */ protected void query() { BmobQuery<UserBean> query = new BmobQuery<>(); query.findObjects(this, new FindListener<UserBean>() { @Override public void onError(int arg0, String arg1) { ToastUtil.toast(DeleteActivity.this, arg1 + "查询失败"); } @Override public void onSuccess(List<UserBean> userBeanList) { // TODO Auto-generated method stub ToastUtil.toast(DeleteActivity.this, showMsg(userBeanList)); convertUserToObject(userBeanList); } }); } /** * 弹出提示 * @param userBmobObjects * @return */ private String showMsg(List<UserBean> userBmobObjects){ String msg = ""; if(userBmobObjects.size() == 0){ msg = "数据不存在!"; } for(UserBean userBean:userBmobObjects){ msg += userBean.getObjectId() + "," + userBean.getUserId() + "," + userBean.getUserName() + "," + userBean.getPassword() + "\n"; } return msg; } /** * 将子类集合转换为基类BmobObject集合 * @param userBeanList * @return */ private List<BmobObject> convertUserToObject(List<UserBean> userBeanList){ queryBeans.clear(); for(UserBean userBean: userBeanList){ queryBeans.add(userBean); } return queryBeans; } } </span>
Bmob移动后端云服务平台--Android从零开始--(三)Bmob数据操作((批量)增删改)
原文地址:http://blog.csdn.net/a123demi/article/details/42059623