数据存储
数据存储是云服务提供的核心功能之一,可用于存放和查询应用数据。下面的代码展示了如何创建一个对象并将其存入云端
下面我们以官方代码作为引入:
// 构建对象
LCObject todo = new LCObject("Todo");
// 为属性赋值
todo.put("title", "工程师周会");
todo.put("content", "周二两点,全体成员");
// 将对象保存到云端
todo.saveInBackground().subscribe(new Observer<LCObject>() {
public void onSubscribe(Disposable disposable) {}
public void onNext(LCObject todo) {
// 成功保存之后,执行其他逻辑
System.out.println("保存成功。objectId:" + todo.getObjectId());
}
public void onError(Throwable throwable) {
// 异常处理
}
public void onComplete() {}
});
说到LeanCloud的数据储存,就一定要好好说说LCObject这个类,这个是LeanCloud数据储存的介质。LCObject 是云服务对复杂对象的封装,每个 LCObject 包含若干与 JSON 格式兼容的属性值对(也称键值对,key-value pairs)。这个数据是无模式化的(schema free),意味着你不需要提前标注每个 LCObject 上有哪些 key,你只需要随意设置键值对就可以,云端会保存它。
简单来说,每一个LCObject 对象对应到数据库中就是一行数据
下面,我们来拆解上面这段代码,来理解它的含义。
// 构建对象
LCObject todo = new LCObject("Todo");
这里的Todo其实是表的名字,而这段代码的功能其实就是在名字叫Todo的表里面,创建一行数据(如果没有名字叫Todo的表,它会给你自己创建一个)
todo.put("title", "工程师周会");
todo.put("content", "周二两点,全体成员");
这段代码的含义其实就是在你所创建的一行数据里面,创建两个列,这两个列名字分别为title和content,在分别放入相对应的字符串数据。因为我们知道 LCObject包含若干个键值对,这里其实就是在一行数据中放入了两个键值对,
这里的_Conversation 和上面我们所说的Todo是一样的,而里面的第一行的列名称对应我们上面例子中的title和content。
同时,每个字段里其实能储存多种多样的数据
LCObject
支持的数据类型包括 String
、Number
、Boolean
、Object
、Array
、Date
等等。你可以通过嵌套的方式在 Object
或 Array
里面存储更加结构化的数据。
LCObject
还支持两种特殊的数据类型 Pointer
和 File
,可以分别用来存储指向其他 LCObject
的指针以及二进制数据。
当然其实还有一些限制,比如每个LCObject
的大小好像不能超过128kb。今天先简单地介绍LCObject
和简单的创建这个类的对象。
ct的大小好像不能超过128kb。今天先简单地介绍
LCObject`和简单的创建这个类的对象。