Object-Box

一款非关系型数据库

优势

ObjectBox占用内存1-1.5mb

insert,delete,update,load,access性能突出

  • 超快速:号称胜过测试过的所有嵌入式数据库
  • 面向对象的 API: 没有 rows、columns 和 SQL,完全从0开始的对象(没有ORM,没有SQLite)
  • 反应性:对数据变化的反应简单而强大,使用ObjectBox中的反应数据观察器或与RxJava集成。
  • 多平台:已经支持安卓和java,ios和MacOs正在集成
  • 简单的线程:ObjectBox返回的对象可以在所以线程中运行
  • 没有手动模式迁移:ObjectBox负责添加,删除和重命名属性的新对象版本,意味着数据库的升级不再需要我们自己管理版本号,ObjectBox内部会自动帮我们管理

ObjectBox基本(大致流程)

        1. 添加依赖

        2.先创建含注解 @Entity 的实体,并添加主键注解 @Id 。

        3.build生成MyObjectBox

        4.初始化MyObject构建BoxStore

        5.获取BoxStore开启查询

添加依赖

app build.gradle

debugImplementation "io.objectbox:objectbox-android-objectbrowser:$objectboxVersion"
releaseImplementation "io.objectbox:objectbox-android:$objectboxVersion"
apply plugin: 'io.objectbox' 必须添加

Project build.gradle

classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"

创建实例


 

@Entity声明这是一个实例,每一个实例都需要有@Id来表明主键,id为long型,可以自己赋值,也可以让objectbox自己赋值

实例创建完成之后,切记要给实例创建get和set方法

然后make project 会自动生成MyObjectBox,用于构建BoxStore;

新建一个application,初始化boxstore,使用ObjectBox的入口,管理Boxs

Box 持久化和查询实体,每一个实体类都会有一个box

初始化

BoxStore boxStore = MyObjectBox.builder().androidContext(this).build();

Box<GalleryCatalog> galleryBox = boxStore.boxFor(GalleryCatalog.class);

查询

List<GalleryCatalog> galleryCatalogs;
galleryCatalogs = DataManager.getInstance().getGalleryCatalogBox().query().build().find();
galleries = galleryBox.query().equal(Gallery_.photo, true).build().find();


版权声明:本文为somethingstill原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。