Android实战——第三方服务之Bmob后端云的增删改查、上传文件、获取文件、修改密码(二)

第三方服务之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) {
            }
        });


步骤二:上传文件(上传文件后,将文件放置Bmob数据库IDCard_img字段中)

首先在后台_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);
            }
        });
    }



你可能感兴趣的:(android,Studio,bmob,android实战)