介绍

ObjectBox也是greenrobot团队开发的orm框架,一开始我看这名字以为他能够储存一些复杂的对象,或者自动依照关系储存复杂的对象,但很遗憾,它并不能,要储存复杂的对象还是需要手动的定义一对一关系或者一对多关系,数据库只能储存一些基本数据类型.这些关系需要学习数据库的设计,我打算从现在(2018年8月21日)开始学习,反正这个学期也要学数据库了.作为学习的一部分,这篇博客会记录下ObjectBox的基本使用.

引入

ObjectBox只要引入一个插件就可以了

在project的build.gradle中引入插件

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

在app模块的bulid.gradle应用插件

apply plugin: 'io.objectbox' // after applying Android plugin

简单使用

建立实体类

@Entity
public class Rating {

    @Id
    private long id;
    private String max;
    private String average;
    private String stars;
    private String min;
    
    // 省略getter/setter
}

它的id好像要求一定要long类型的,官方是这样说的,整型的id我没有测试,我只使用了long类型

Note that ObjectBox uses IDs of type long (see Object IDs doc)

构建项目使插件生效

在Android Studio的菜单找到Build->Make Project构建一下就可以了

初始化

官方推荐在Application或者Application的子类初始化,因为这样只需要初始化一次

比如

public BoxStore getBoxStore() {
        return MyObjectBox.builder().androidContext(getApplicationContext()).build();
    }

进行操作

BoxStore boxStore = ((MyApplication) getApplication()).getBoxStore();
        Box<Rating> ratingBox = boxStore.boxFor(Rating.class);
        Rating rating = new Rating();
        rating.setStars("100");
        rating.setAverage("7");
        rating.setMax("10");
        rating.setMin("5");
        ratingBox.put(rating);

这个Box就相当于ORM框架的DAO层,存放和各种操作数据库的方法.

🌹💗正文结束💗🌹