greendao 3.0集成和使用封装

本文介绍了在Android项目中使用greendao 3.0进行数据库集成,重点讨论了异步操作数据库的方法,以应对大规模数据场景。作者分享了集成配置、实体类创建以及异步处理的封装过程,包括自定义回调接口、DaoManager和DaoUtils类的设计。此外,还提到了在实现异步操作过程中遇到的问题和一些使用greendao的注意事项,并提供了源码下载链接。
摘要由CSDN通过智能技术生成

现在项目中要用到数据库,最终选择使用了greendao ,至于原因,肯定是性能原因了。本文将着重介绍数据库的异步操作,因为网上很多都是配置集成+简单的使用,并且都还是同步的(重要的是 都是一样的文章!!!)。我想说,如果是百万级的数据就GG了。
一般来说,我们需要数据时,先访问数据库看是否有数据,如果有,就从数据库取,如果没有,就访问网络,成功后,将开启线程将数据插入数据库中,同事更新UI 如下图所示:
这里写图片描述
1:集成配置


apply plugin: 'org.greenrobot.greendao'

greendao {
    schemaVersion 1
    daoPackage 'com.app.test.textgreendao.db' //这个填写你自己创建的路径
    targetGenDir 'src/main/java'
}
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'
    }
}

dependencies {
    compile'org.greenrobot:greendao:3.0.1'
    compile'org.greenrobot:greendao-generator:3.0.0'
}

2:接下来就是创建实体类了:

/**
 * Created by ${liumengqiang} on 2017/7/10.
 */
@Entity
public class User {
   
    @Id
    private long memberId;
    @Property
    private String name;
    @Property
    private String age;


}

然后点击 Build —— make build 就是那个绿色小锤子按钮,就会自动帮你生成相应的方法;
至于@Id,@Property 这一类的标记 大家可以上网搜一下 这个不再赘述。

3:然后就是自己封装GreenDao了,首先网上很多都是同步数据 在这里 我用的是异步处理的也就是使用的是AsyncSession类,这个是GreenDao内部封装好的 再次我们可以在封装一下,专门用于异步操作数据库的成功和失败;
首先 我定义了返回操作数据库结果的回调接口

package com.app.test.textgreendao.user;

import java.util.List;

/**
 * Created by ${liumengqiang} on 2017/7/12.
 */

public interface UserInterface {
   

    /**
     * type true 成功。 false 失败
     * @param <T>
     */

    interface OnIsertInterface<T>{
  //单个插入成功
        void onIsertInterface(boolean type);
    }

    interface OnQuerySingleInterface<T>{
  //单个查询成功
        void onQuerySingleInterface(T entry);
    }

    interface OnDeleteInterface<T>{
  //单个删除成功
        void onDeleteInterface(boolean type);
    }

    interface OnUpdateInterface<T>{
  //单个修改成功
        void onUpdateInterface(boolean type);
    }

    interface OnQueryAllInterface<T>{
  //批量查询数据回调
        void onQueryAllBatchInterface(List<T> list);
    }

}

然后 我们声明这些接口:

package com.app.test.textgreendao.db;

import com.app.test.textgreendao.user.UserInterface;

/**
 * Created by ${liumengqiang} on 2017/7/12.
 */

public class DaoInterface<T>  {

    protected UserInterface.OnQueryAllInterface<T> onQueryAllInterface;
    protected UserInterface.OnUpdateInterface<T> onUpdateInterface;
    protected UserInterface.OnIsertInterface<T> onIsertInterface;
    protected UserInterface.OnQuerySingleInterface<T> onQuerySingleInterface;
    protected UserInterface.OnDeleteInterface<T> onDeleteInterface;

    public UserInterface.OnQueryAllInterface<T> getOnQueryAllInterface() {
        return onQueryAllInterface;
    }

    public void setOnQueryAllInterface(UserInterface.OnQueryAllInterface<T> onQueryAllInterface) {
        this.onQueryAllInterface = onQueryAllInterface;
    }

    public UserInterface.OnUpdateInterface<T> getOnUpdateInterface() {
        return onUpdateInterface;
    }

    public void setOnUpdateInterface(UserInterface.OnUpdateInterface<T> onUpdateInterface) {
        this.onUpdateInterface = onUpdateInterface;
    }

    public UserInterface.OnIsertInterface<T> getOnIsertInterface() {
        return
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值