第三方服务之Bmob后端云的增删改查、上传文件、获取文件、修改密码(二)
事先说明:这里的一切操作都是在集成了BmobSDK之后实现的,如果对Bmob还不了解的话,请关注我第一篇Bmob文章
步骤一:后台数据的增删改查
首先创建一个javaBean,对应Bmob后台数据库必须有Person这个表,还要在Person表中创建name字段和address字段:
public class Person extends BmobObject { private String name; private String address; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }增加数据:(会自动生成一个objectId)
Person person = new Person(); person.setName("小新"); person.setAddress("北京"); person.save(this, new SaveListener() { @Override public void onSuccess() { } @Override public void onFailure(int i, String s) { } });删除数据:(根据objectId唯一标识删除)
Person person = new Person(); person.setObjectId("dd8e6aff28"); person.delete(this, new DeleteListener() { @Override public void onSuccess() { } @Override public void onFailure(int i, String s) { } });修改数据:
//更新Person表里面id为6b6c11c537的数据,address内容更新为“北京朝阳” Person p2 = new Person(); p2.setAddress("北京朝阳"); p2.update(this, "6b6c11c537", new UpdateListener() { @Override public void onSuccess() { } @Override public void onFailure(int i, String s) { } });查询数据:
BmobQuery<Person> query = new BmobQuery<>(); //查询条件 query.addWhereEqualTo("name", "小新"); query.findObjects(this, new FindListener<Person>() { @Override public void onSuccess(List<Person> object) { } @Override public void onError(int code, String msg) { } });
首先在后台_User数据库中创建一个File类型的字段,再者有个用户实体类,字段名必须和后台一样:
public class User extends BmobUser { private BmobFile IDCard_img; public BmobFile getIDCard_img() { return IDCard_img; } public void setIDCard_img(BmobFile IDCard_img) { this.IDCard_img = IDCard_img; } }然后获取当前的用户信息(已经登陆前提下),在当前用户信息的基础上更新上传图片,然后再更新字段信息:
public static void updateFileRealName(Uri uri, final Activity activity) { final BmobFile bmobFile = new BmobFile(new File(uri.getPath())); bmobFile.uploadblock(activity, new UploadFileListener() { @Override public void onSuccess() { //更新后台用户信息,将文件写入字段中 User bmobUser = UserDao.getUser(activity); //更新字段 bmobUser.setIDCard_img(bmobFile); bmobUser.update(activity, bmobUser.getObjectId(), new UpdateListener() { @Override public void onSuccess() { DialogUtils.successLoadingDialog("上传成功"); } @Override public void onFailure(int i, String s) { DialogUtils.errorLoadingDialog("服务器错误" + s); } }); } @Override public void onFailure(int i, String s) { DialogUtils.errorLoadingDialog("上传失败,请选择拍照后的图片" + s); } }); }在后台Bmob数据库文件管理中可看到上传文件:
在我们的_User数据库中可以看到字段更新了:
步骤三:获取文件
//用户扩展类 User user = (User) BmobUser.getCurrentUser(this); if (user.getIDCard_img() != null) { //由于是网络Uri图片,所以采用XUtils来加载网络图片 bitmapUtils.display(ci_img, user.getIDCard_img().getFileUrl(this)); }
/** * 修改用户密码 */ public static void updatePassword(final Context context, String oldPassword, String newPassword) { BmobUser.updateCurrentUserPassword(context, oldPassword, newPassword, new UpdateListener() { @Override public void onSuccess() { ToastUtils.ShowToast(context, "修改成功"); } @Override public void onFailure(int i, String s) { ToastUtils.ShowToast(context, "修改失败:" + s); } }); }