objextbox 浏览器_ObjectBox的使用

添加依赖

在整个项目的build.gradle里添加

buildscript {

ext.objectboxVersion = '2.3.4'

repositories {

jcenter()

}

dependencies {

// Android Gradle Plugin 3.0.0 or later supported

classpath 'com.android.tools.build:gradle:3.3.2'

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

}

}

在app的build.gradle里添加

如果是kotlin

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-kapt' // Required for annotation processing.

apply plugin: 'io.objectbox' // Apply last.

如果是java

apply plugin: 'com.android.application'

apply plugin: 'io.objectbox' // Apply last.

好了,依赖加完了

添加初始化代码

添加初始化代码:

kotlin, 可以把这个类放到自定义的app中,也可以单独一个类

object ObjectBox {

lateinit var boxStore: BoxStore

private set

fun init(context: Context) {

boxStore = MyObjectBox.builder()

.androidContext(context.applicationContext)

.build()

}

}

java

public class ObjectBox {

private static BoxStore boxStore;

public static void init(Context context) {

boxStore = MyObjectBox.builder()

.androidContext(context.getApplicationContext())

.build();

}

public static BoxStore get() { return boxStore; }

}

这里的MyObjectBox是编译自动生成的。如果编译之后没有生成,可以先按照下面的步骤添加Entity类,然后再编译,这样应该就可以生成了。

然后在自定义的application中调用初始化

kotlin:

class ExampleApp : Application() {

override fun onCreate() {

super.onCreate()

ObjectBox.init(this)

}

}

java:

public class ExampleApp extends Application {

@Override

public void onCreate() {

super.onCreate();

ObjectBox.init(this);

}

}

接下来就可以使用了:

val userBox: Box = ObjectBox.boxStore.boxFor()

开始使用

添加entity

// User.kt

@Entity

data class User(

@Id var id: Long = 0,

var name: String? = null

)

几个注意的点:

类上面可以打@Entity,如果是基类则打@BaseEntity。

一定要有一个@Id,类型为Long的属性,用于自增属性。

kotlin中的data class一定要有默认值,不然可能会找不到默认的构造方法。

如果某个字段不想序列化到数据库中可以打上:@Transient标签,从kotlin里或者objectBox中导入的都可以。

增加:

App.ObjectBox.boxStore.boxFor().put(project)

查找:

App.ObjectBox.boxStore.boxFor()

.query()

.equal(Mark_.projectId, projectId)

.build()

.find()

查找并且删除:

val box = App.ObjectBox.boxStore.boxFor()

box.query().equal(Mark_.projectId, projectId).build().remove()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值