美文网首页
Android 开源greendao库的配置和使用

Android 开源greendao库的配置和使用

作者: 幻幻90 | 来源:发表于2017-07-05 17:49 被阅读103次

    一:greendao在Android studio上的配置:

    首先如下图配置:

    即:在app的build.gradle下加入apply plugin: 'android-apt'

    apply plugin: 'com.neenbedankt.android-apt'

    apply plugin: 'org.greenrobot.greendao'

    //greendao配置

    greendao {

    //版本号,升级时可配置

    schemaVersion 1

    daoPackage 'com.cyx.wowlauncher.bean.greendao'

    targetGenDir 'src/main/java'

    }

    然后如下

    在dependencies加入依赖库: compile 'org.greenrobot:greendao:3.2.2'

    其次在projects的build.gradle加入如下:

    mavenCentral()

    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

    classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'

    进行了上面的步骤就可以

    编写自己的bean实体类了,注意要在数据类的前面加上@Entity 还有在 id字段加上@Id(autoincrement = true)(自增)强调一下id字段必须为Long型

    接下来关键的一步就是使自己的项目产生greendao的依赖代码之前要在Build的Make Project一下

    不出意外就会在刚才daoPackage 'com.cyx.wowlauncher.bean.greendao' 配置里写的bean包下产生greendao包里边有三个类分别是AppBeanDao,DaoMaster,DaoSession类如下图所示:

    并且appbean的实体类会重新刷新产生带参数的构造方法和字段的getter和setter方法。

    二:greendao的使用

    为了方便方便greendao的调用建议如下:

    在全局的Application中先greendao实例化:GreenDaoManager.getInstance();,这里专门封装了一个类GreenDaoManager来实例化greendao

    public class GreenDaoManager {

    private DaoMaster mDaoMaster;

    private DaoSession mDaoSession;

    private GreenDaoManager()

    {

    init();

    }

    /**

    * 静态内部类,实例化对象使用

    */

    private static class SingleInstanceHolder

    {

    private static final GreenDaoManager INSTANCE = new GreenDaoManager();

    }

    /**

    * 对外唯一实例的接口

    *

    * @return

    */

    public static GreenDaoManager getInstance()

    {

    return SingleInstanceHolder.INSTANCE;

    }

    /**

    * 初始化数据

    */

    private void init()

    {

    DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(App.applicationContext,

    "app_db");

    mDaoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());

    mDaoSession = mDaoMaster.newSession();

    }

    public DaoMaster getmDaoMaster()

    {

    return mDaoMaster;

    }

    public DaoSession getmDaoSession()

    {

    return mDaoSession;

    }

    public DaoSession getNewSession()

    {

    mDaoSession = mDaoMaster.newSession();

    return mDaoSession;

    }

    接下来就是真正使用greendao了,用它来方便的进行数据的增删改查操作了:

    首先会使用到AppBeanDao数据库的操作类,该类是之前配置greendao的时产生的,想了解的可以查看该类的一些方法待会简单介绍常用方法.

    要想在哪用AppBeanDao就要在那里先获取AppBeanDao对象:

    public AppBeanDao getAppBeanDao() {

    return GreenDaoManager.getInstance().getmDaoSession().getAppBeanDao();

    }

    获得了AppBeanDao对象就来进行插入操作;

    AppBean appBean = new AppBean();

    appBeanDao.insert(appBean);

    删除操作;

    appBeanDao.delete(appBean);直接删除一个对象

    appBeanDao.deleteByKey(id);根据id来删除某条数据

    更新操作; 这里遇到了个坑所以会相对会详细介绍哈

    newAppBean.setId(new Long(oldAppBean.getId()));

    public boolean updateApp(AppBean newAppBean){

    //            OPENLOG.D("updateApp=========newAppBean: " + appBeanDao.hasKey(newAppBean));

    if ( appBeanDao.hasKey(newAppBean)) {//因为第一次更新数据库时;数据出现了没有key的情况,其实就是没有写上面那行setId的代码,原因是新数据没有位置无法找到一个旧的位置来代替,所以这里先查看该数据是否有key值

    appBeanDao.update(newAppBean)

    return true;

    }

    return false;

    }

    查询表中全部数据;

    appBeanDao.loadAll();

    相关文章

      网友评论

          本文标题:Android 开源greendao库的配置和使用

          本文链接:https://www.haomeiwen.com/subject/ibbqhxtx.html