objectbox基础

Posted bruce2020

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了objectbox基础相关的知识,希望对你有一定的参考价值。

objectbox基础

参考链接

1. objectbox特性

  • 超快 objectbox优于测试过的所有嵌入式数据库
  • 面向对象的api 没有ORM,没有SQLite,简洁的api
  • 自动升级 可以直接在对象上进行删除修改等操作
    其它参考官网介绍

2.如何使用?

1.在项目build.gradle添加对应引用

buildscript {
    ext.objectboxVersion = ‘1.4.0‘
    repositories {
        jcenter()
        maven { url "http://objectbox.net/beta-repo/" }
    }
    dependencies {
        classpath ‘com.android.tools.build:gradle:2.3.3‘
        classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"
    }
}
allprojects {
    repositories {
        jcenter()
        maven { url "http://objectbox.net/beta-repo/" }
    }
}

2.在app的 build.gradle文件添加引用

apply plugin: ‘com.android.application‘
apply plugin: ‘io.objectbox‘
dependencies {
    compile "io.objectbox:objectbox-android:$objectboxVersion"
    annotationProcessor "io.objectbox:objectbox-processor:$objectboxVersion"
}

3.定义要保存在数据库中的对象

@Entity
public class Note {
    @Id
    long id;
    String text;
}

添加完成对象后,编译项目,会自动生成MyObjectBox对象

4.在Application中初始化MyObjectBox对象

private BoxStore boxStore;
  @Override
  public void onCreate() {
    super.onCreate();
    boxStore = MyObjectBox.builder().androidContext(App.this).build();
    Log.d("App", "Using ObjectBox " + BoxStore.getVersion() + " (" +                BoxStore.getVersionNative() + ")");
  }
  public BoxStore getBoxStore() {
    return boxStore;
  }

5.进行数据库的各种操作

private Box<Note> notesBox;
notesBox = ((App) getApplication()).getBoxStore().boxFor(Note.class);

Box提供了对数据进行增删改查的api
put:插入数据
get:查询数据
remove:删除数据
count:返回存贮得对象个数
query: 根据对应得条件查询
修改数据,先根据query查询到对应的对象,修改对应的属性值后,调用put方法插入到数据库

3.objectbox注解

注解 介绍
@Entity 表示一个对象
@Id 表示一个标示符,默认自动维护
@Index 表示一个临时属性,不会存储在数据库
@NameInDb 表示存储在数据库中的列名称

以上是关于objectbox基础的主要内容,如果未能解决你的问题,请参考以下文章

Android 安卓超级强劲的轻量级数据库ObjectBox,快的飞起

Android 安卓超级强劲的轻量级数据库ObjectBox,快的飞起

在模块 objectbox-android-2.9.1-runtime 中找到重复的类 io.objectbox.android.AndroidObjectBrowser

(ObjectBox | Dart) 如何将 json 传递给实体类?

Objectbox Box的getAll() 函数返回emptylist() 未判断导致崩溃

安卓项目集成objectbox-java数据库框架教程(非关系型)