ObjectBox[二] 教程:如何开始使用ObjectBox
ObjectBox[六] 数据监听和RX(Data Observers and Reactive Extensions)
ObjectBox[七] 支持LiveData(Android体系结构组件)
ObjectBox[十二] Meta Model, IDs, and UIDs
什么是ObjectBox?这是一个移动数据库,使对象持久性变得简单和快速。
本教程在Github上提供的一个简单的ObjectBox示例项目。如果您已经了解了基本知识,则可以直接跳转到 简介。
现在可以去下载Github上的示例项目,在objectbox-example 文件夹你能找到一个管理笔记的android app,下面直接介绍代码。
The Note entity(实体) and Box class
@Entity
public class Note {
@Id
long id;
String text;
Date date;
...
}
@Entity 注解表明 Note 是一个写入数据库的实体
@id 表明 long id 作为Key
一般来说,一个ObjectBox实体是一个带有属性的有注解标记的类。你可以按照这种方法创建新的实体到数据库中。
接下来编译工程,ObjectBox会生成一些类,如 MyObjectBox 。还有一些ObjectBox在内部使用的其他一些类。
插入和删除笔记
要查看新笔记如何添加到数据库中,请查看NoteActivity类。首先,我们必须为我们的Note类准备一个Box对象,我们 在onCreate()中做 :
notesBox = ((App) getApplication()).getBoxStore().boxFor(Note.class);
注意: 在Demo中,“App”是继承Application的类 ,推荐BoxStore在这里获取 。
当用户点击添加按钮时,方法 addNote()被调用。addNote创建一个新的 Note对象,并使用Box将其放入数据库:
Note note = new Note(0, noteText, comment, new Date());
notesBox.put(note);
Log.d(App.TAG, "Inserted new note, ID: " + note.getId());
请注意,Note传递了0作为id。表示一个新的实体,ObjectBox会在内部分配一个新的id 。
删除一个笔记也很简单。请参考 NoteClickListener
:
notesBox.remove(note);
更新笔记和更多
更新一个笔记非常简单。只要修改它的任何属性, 然后用改变的对象再次调用 put ():
note.setText("This note has changed.");
notesBox.put(note);
notesBox还有一些更多的方法来增删改查。
建立数据库
现在您已经看到了ObjectBox 正常运行,但是我们如何获取 BoxStore实例?通常,您应该为Application类中的整个应用程序设置一次BoxStore:
boxStore = MyObjectBox.builder().androidContext(App.this).build();
然后对外提供getterStore ()之类的getter, 让activity和fragment或者其他你想调用的地方来使用。
(MyObjectBox 类是自动生成,如果没有生成,请Rebuild)
请记住:ObjectBox本身是一个NoSQL数据库,因此不基于SQL或SQLite。这就是为什么在初始化期间不需要设置“CREATE TABLE”语句的原因。
下一步
阅读关于如何将ObjectBox添加到项目以及它如何在简介中工作的信息。
了解有关ObjectBox实体注释的更多信息 。
有关 高级功能(如关系和查询),请参阅完整的ObjectBox文档。