第三方服务器Bmob实现数据存储

初始化操作

第一步,导入BmobSDK第三方库,在Bmob官网上进行下载,导入即可

第二步,在manifest里配置权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

第三步,初始化SDK,在第一个启动的Activity的onCreate()方法里初始化或者在Application的onCreate()方法里进行初始化:

// 初始化 Bmob SDK
//字符串为应用程序的AppKey,在Bmob官方获取
Bmob.initialize(this, "d8ce0167b5dcba386a96649b4d9ad0d6

数据段增删改查:

新建JavaBean,并设置对应的get和set方法,如Person类:
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;
}

}
同时在Bmob服务器上新建Person表,对应的字段和Person类的属性一致,这样后续的操作只需要操作Person类,服务器端的数据表里数据对应变化。

添加一条数据:

Person p2 = new Person();
p2.setName("haijun");
p2.setAddress("海南海口");
p2.save(this, new SaveListener() {
    @Override
    public void onSuccess() {
       Toast.makeText(AlbumActivity.this,"添加成功",Toast.LENGTH_SHORT).show();
}
    @Override
    public void onFailure(int code, String msg) {
Toast.makeText(AlbumActivity.this,"添加失败",Toast.LENGTH_SHORT).show();

    }
}

查询一条数据:

//查找Person表里面id为6b6c11c537的数据
BmobQuery<Person> bmobQuery = new BmobQuery<Person>();
//"6b6c11c537"为Person表中的objectId
bmobQuery.getObject(this, "6b6c11c537", new GetListener<Person>() {
    @Override
    public void onSuccess(Person object) {
        Toast.makeText(AlbumActivity.this,"查询成功",Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onFailure(int code, String msg) {
      Toast.makeText(AlbumActivity.this,"查询失败",Toast.LENGTH_SHORT).show();
    }
});

查询多条数据:

BmobQuery< Person> bmobQuery = new BmobQuery<>();
String id = ApplicationInfo.sharedPreferences.getString("id","");

HashSet<String> stringHashMap = new HashSet<>();
stringHashMap.add("默认");
stringHashMap.add(id);

//查询条件,userId满足“默认字段”的值和相应用户id的值,stringHashMap为集合
bmobQuery.addWhereContainedIn("userId",stringHashMap);
//设置限制查询条数
bmobQuery.setLimit(50);

bmobQuery.findObjects(this, new FindListener< Person >() {
   @Override
   public void onSuccess(List<AlbumCategory> list) {
    //list为查询成功后返回的数据条集合
      Toast.makeText(AlbumActivity.this,"网络数据",Toast.LENGTH_SHORT).show();
   }
   @Override
   public void onError(int i, String s) {
   }
});

修改一条数据:

//更新Person表里面id为6b6c11c537的数据,address内容更新为“北京朝阳”
Person p2 = new Person();
p2.setAddress("广告深圳");
p2.update(this, "6b6c11c537", new UpdateListener() {
    @Override
    public void onSuccess() {
        Toast.makeText(AlbumActivity.this,"修改成功",Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onFailure(int code, String msg) {
        Toast.makeText(AlbumActivity.this,"修改失败",Toast.LENGTH_SHORT).show();
    }
});

删除一条数据:

Person p2 = new Person();
p2.setObjectId("6b6c11c537");
p2.delete(this, new DeleteListener() {
    @Override
    public void onSuccess() {
      Toast.makeText(AlbumActivity.this,"成功",Toast.LENGTH_SHORT).show();    }
    @Override
    public void onFailure(int code, String msg) {
       Toast.makeText(AlbumActivity.this,"成功",Toast.LENGTH_SHORT).show();
    }
});

批量数据操作:
在BmobObject对象中提供了三种用于批量操作的方法,分别是insertBatch、updateBatch、deleteBatch,批量添加、更新、删除。

insertBatch如下:
List<BmobObject> persons = new ArrayList<BmobObject>();
for (int i = 0; i < 3; i++) {
    Person person = new Person();
    person.setName("张三 "+i);
    person.setAddress("上海朝阳路"+i+"号");
    person.setGpsAdd(new BmobGeoPoint(112.934755, 24.52065));
    person.setUploadTime(new BmobDate(new Date()));
    List<String> hobbys = new ArrayList<String>();
    hobbys.add("阅读");
    hobbys.add("篮球");
    hobbys.add("唱歌");
    person.setHobby(hobbys);
    person.setBankCard(new BankCard("中国银行", "176672673687545097"+i));
    persons.add(person);
}
new BmobObject().insertBatch(this, persons, new SaveListener() {
    @Override
    public void onSuccess() {
    }
    @Override
    public void onFailure(int code, String msg) { 
    }
});

updateBatch的使用方式如下:
List<BmobObject> persons = new ArrayList<BmobObject>();
Person p1 = new Person();
p1.setObjectId("e51d651c22");
p1.setAge(25);
Person p2 = new Person();
p2.setObjectId("3f70a922c4");
p2.setAge(26);
p2.setGender(false);
Person p3 = new Person();
p3.setObjectId("08fdd55765");
p3.setAge(27);

persons.add(p1);
persons.add(p2);
persons.add(p3);

new BmobObject().updateBatch(this, persons, new UpdateListener() {
    @Override
    public void onSuccess() {
    }
    @Override
    public void onFailure(int code, String msg) {
    }
});
deleteBatch的使用方式如下:
List<BmobObject> persons = new ArrayList<BmobObject>();
Person p1 = new Person();
p1.setObjectId("38ea274d0c");
Person p2 = new Person();
p2.setObjectId("01e29165bc");
Person p3 = new Person();
p3.setObjectId("d8226c4828");

persons.add(p1);
persons.add(p2);
persons.add(p3);

new BmobObject().deleteBatch(this, persons, new DeleteListener() {
    @Override
    public void onSuccess() {
    }
    @Override
    public void onFailure(int code, String msg) {
    }
});

同时修改多个表中数据,多表批量操作:

//保存订单信息
//Bmob批量处理数据,同时向goodsOrder和shoppingCart里添加数据
List<BmobObject> userBeans = new ArrayList<BmobObject>();
// goodsOrder和goodsOrder是两个bean的对象,即修改两个表中数据
userBeans.add(goodsOrder);
userBeans.add(goodsOrder);
BmobObject bmobObject = new BmobObject();
bmobObject.insertBatch(HandlePayActivity.this, userBeans, new SaveListener() {
    @Override
    public void onSuccess() { 
    }
    @Override
    public void onFailure(int i, String s) {

    }
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值