objectbox
LiveData (Arch.Comp.)从 1.2.0 开始支持 Android Architecture ComponentsObjectBox 提供 ObjectBoxLiveData 可以在 ViewModel 中使用
1234567891011public class NoteViewModel extends ViewModel { private ObjectBoxLiveData<Note> noteLiveData; public ObjectBoxLiveData<Note> getNoteLiveData(Box<Note> notesBox) { if (noteLiveData == null) { // 查询所有的 notes, text 按 a-z 的顺序排列 noteLiveData = new ObjectBoxLiveData(notesBox.query().order(Note_.text) ...
objectbox
安卓本地单元测试设置测试环境| 此配置仅针对 ObjectBox 1.4 及之前版本.新版本已经自动添加了 native ObjectBox 依赖库。
123456789// /app/build.gradledepdendencies { // 必备 JUnit 4 testImplementation 'junit:unit:4.12' // 手动添加平台独立的 native Objectbox 依赖库.(可选) testImplementation "io.objectbox:objectbox-linux:$objectboxVersion" testImplementation "io.objectbox:objectbox-macos:$objectboxVersion" testImplementation "io.objectbox:objectbox-windows:$objectboxVersion"}
| ...
objectbox
Entity 注解entity 数据可访问
ObjectBox 需要访问 entity 的属性(生成 Cursor 类).
属性包内可见。kotlin 中使用 JvmField
提供标准 getters
为了提升性能,请提供具有全部属性的构造方法
123456789101112@Entitypublic class User { @Id private long id; private String name; @Transient private int tempUsageCount; public User(){/* 默认构造方法 */} public User(id,name){ this.id = id; this.name = name; } // getters and setters for properties...}
entity 属性的注解
@NameInDb 可以在数据库中为属性命名。
应该使用 @Uid ...
objectbox
Entity在一个类中至少需要 @Entity 和 @Id 两个注解才能定义一个 ObjectBox model.例如:
123456// User.java@Entitypublic class User { @Id public long id; public String name;}
然后 make 就可生成 model.
| @Id 的类型必须为 long.| 如果 entity 发生了很大的变动(如移动类或修改注解),必须 rebuild 项目以便 ObjectBox 生成的代码得到更新.
核心类
MyObjectBox: 基于 entity 类生成。提供 builder 配置 BoxStore.
BoxStore: ObjectBox 的入口。操作数据库,管理 Boxes 的工具.
Box: 对 entity 保存和查询。每一个 entity 都有一个对应的 Box(由 BoxStore 提供).
核心初始化实例化 BoxStore 的最好时机是在 app 启动时。推荐在 Application 类的 onCrea ...
objectbox
关于ObjectBox 定位是: 针对移动端和 IoT 超快的 (superfast edge database) 面向对象的数据库 .为小型设备提供了边缘计算能力,使得数据可以快速高效地在本地存储、处理、安全管理.ObjectBox 小于 1MB,最适合移动 APP、小型 IoT 设备及路由。并且 ObjectBox 也是第一个在边缘设备上兼容 ACID 的高性能的 NoSQL 数据库.所有的产品都是基于工程师思维开发的,所以可以使用最少的代码去实现想要的功能。
优点
比同类竟品快 10 倍以上。BenchMark
跨平台。支持 Linux、Windows、Mac/iOS、Android、Raspberry Pi、ARM 等嵌入式设备和容器。
小于 1MB,特别针对小型设备设计和优化。
易使用。
支持 reactive.
无缝结合 greenDAO.(同一家公司出品)
更好地支持关系型数据. 提供了改变追踪(change tracking),级联添加(cascading puts),灵活的加载策略(eager,lazy)
无需掌握 SQL:Object ...