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