Android数据库之objectbox的使用

Android数据库之objectbox的使用

 

添加依赖:

1.在APP的build.gradle 中dependencies 中添加

releaseImplementation 'io.objectbox:objectbox-android:2.2.0'

 

2.在APP的build.gradle 中dependencies配置,注意需要放最后面

apply plugin: 'io.objectbox' // 放最后面

 

3.在工程根目录的build.gradle文件的dependencies中添加

classpath "io.objectbox:objectbox-gradle-plugin:2.2.0"

 

此时环境搭建好了。是不是很简单?啧啧啧

初始化:

ObjectBox与其他DB库不同,不会为每个实体生成单独的DAO类,而是用一套模板进行访问。

对实体类进行存取的操作需要用到支持泛型的Box。每个实体类的Box需要使用BoxStore的boxFor方法获取。整个应用保持一个BoxStore的引用就好,通常在Application中进行初始化

public class MainApplication extends Application {



   

    private BoxStore boxStore;

    private static MainApplication application;
    @Override

    public void onCreate() {

        super.onCreate();
        application = this;
      boxStore=MyObjectBox.builder().androidContext(this).build();

                

    }



    public static MainApplication getContext() {

        return application;

    }



    public BoxStore getBoxStore() {

        return boxStore;

    }

}

 

简单使用:泛型T为保存数据的实体类

public class BlogDao {

    public static <T> Box<T> getBox(Class<T> t) {

        //根据某个实体类获取Box对象

        return MainApplication.getContext().getBoxStore().boxFor(t);

    }

}

实体类:

@Entity

public class TakePhoto {



    @Id

    private long takeId;

   

    public long getTakeId() {

        return takeId;

    }



    public void setTakeId(long takeId) {

        this.takeId = takeId;

    }

 

 

增/改:

若当前ID存在,进行更改,若不存在,则增加数据

BlogDao.getBox(TakePhoto.class).put(takePhoto);

删:

BlogDao.getBox(TakePhoto.class).remove(takePhoto.getTakeId());

查:

BlogDao.getBox(TakePhoto.class).query().build().find();

关系:如TakePhoto下有多个TakePhotoPaths。

一对一写法:


public ToOne<TakePhotoPath> paths;

一对多写法:

注意:如某TakePhoto有多个TakePhtotPath,不可写List<TakePhotoPath>。

写法如下:

@Backlink
public ToMany<TakePhotoPath> paths;
public ToOne<TakePhoto> photo;

多对多写法:

public ToMany<TakePhotoPath> paths;

 

注意:

坑1:

MyObjectBox找不到,需要添加实体类并注解Entity

并且Clean Project ,Rebuild Project。

坑2:

还是找不到,检查实体类的成员变量的语法是否写错,或注解写错。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值