Android数据库ObjectBox使用说明

前言

集成GreenDao查询官网可以看到一则通告:对于新应用程序,我们建议使用ObjectBox,这是一个新的面向对象的数据库,它比SQLite快得多并且易于使用。对于基于greenDAO的现有应用程序,我们提供了DaoCompat,可轻松切换(另请参见公告)。

于是,本篇便对比GreenDao写一个ObjectBox的简单使用说明,对比GreenDao集成起来更加容易,使用也比较简单。

介绍

ObjectBox数据库是用于对象的超快速轻量级数据库,由greenrobot团队开发,与GreenDao,EventBus等师出同门。

从 greenDAO 迁移到 ObjectBox 提供了各种优势:

  • 更快: ObjectBox 比 SQLite 快10倍(检查这个开源基准应用程序)
  • 强大的关系支持: ObjectBox 提供了更改跟踪、级联放置和灵活的加载策略(渴望和懒惰)
  • 不需要掌握 SQL: ObjectBox 更容易使用,不需要学习“外语”
  • 现代 api: ObjectBox 具有简化的 api,并提供了自己的反应式查询和对 rxjava2/3的支持(具有真正的变更观察)
  • 更清晰的实体代码: ObjectBox 具有不可见的代码生成,并且不会在文件中生成源代码
  • 支持 Kotlin: ObjectBox 支持 Kotlin,包括数据类
  • 同步即将到来: 基于典型的 REST 网络方法,保持数据同步是很难做到的。使之变得简单

Github地址:https://github.com/objectbox/objectbox-java

项目配置

1、项目根 build.gradle (项目级别) 配置:

buildscript {
   
    ext.objectboxVersion = '2.8.1'
    dependencies {
   
        classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"
    }
}

2、应用程序 build.gradle (模块级) 配置:

apply plugin: 'io.objectbox' // 应用Android插件后

使用说明

1、新建实体类,如下:

@Entity
public class User {
   
    @Id
    public Long id;

    public String userId;

    public String userName;

    public int age;
}
  • @Entity:对象持久化;
  • @Id:这个对象的主键,默认情况下,id是会被objectbox管理的,也就是自增id。手动管理id需要在注解的时候加上@Id(assignable = true)。当你在自己管理id的时候如果超过long的最大值,objectbox 会报错;id的值不能为负数;当id等于0时objectbox会认为这是一个新的实体对象,因此会新增到数据库表中;
  • @Index:这个对象中的索引。经常大量进行查询的字段创建索引,用于提高查询性能;
  • @Transient:某个字段不想被持久化,可以使用此注解,字段将不会保存到数据库;
  • @NameInDb:数据库中的字段自定义命名;
  • @ToOne:做一对一的关联注解 ,此外还有一对多,多对多的关联,例如Class的示例;
  • @ToMany:做一对多的关联注解;
  • @Backlink:表示反向关联。

它必须具有非私有的可见性(或非私有的 getter 和 setter 方法)。

2、点击AndroidStudio中的Make Project(小锤子的图标),objectbox为项目生成类 MyObjectBox类,用于初始化生成 BoxStore 对象,进行数据库管理。然后,通过BoxStore对象为实体类获得一个 Box 类,Box 对象提供对所有主要函数的访问,比如 put、 get、 remove 和 query。

核心API:

  • MyObjectBox: 基于您的实体类生成,MyObjectBox 提供一个构建器为您的应用程序设置一个 BoxStore。
  • BoxStore: 使用 ObjectBox.BoxStore 的入口点是到数据库的直接接口,并管理 Boxes。
  • Box: 保存一个盒子并查询实体。对于每个实体,有一个 Box (由 BoxStore 提供)。

3、数据库操作:

(1)

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值