美文网首页Android知识Android技术知识Android开发
《Android APP可以有的东西》之数据库篇:GreenDa

《Android APP可以有的东西》之数据库篇:GreenDa

作者: 温瑜 | 来源:发表于2016-10-17 12:38 被阅读246次

    先上一张图

    国内top500应用分析

    上图是豌豆荚的某一个时间段的top500应用的分析。我们重点关注数据库部分,排在第一的是GreenDao,有什么优势也不用多说了,关键是怎么用起来是吧?

    优势可以忽略,但是特性还是必须得说明一下:将对象映射到SQLite数据库,也就是说操作数据库只需要直接java对象即可,对于我这种半路出家的菜鸡简直是福音啊有木有,为什么?因为我不会数据库语法。。。/手动抠鼻。

    另外,greenDao3.0和之前区别还是蛮大的,采用注解的方式通过编译方式生成Java数据对象和DAO对象,配置方式比以前2.x简易多了啊,所以使用3.0以前的朋友可能要换以下。

    来啊,开始啊!

    上代码! Demo

    配置和使用

    1.module的build.gradle添加:

    apply plugin: 'org.greenrobot.greendao'//添加
    

    2.module的build.gradle依赖添加:

    compile'org.greenrobot:greendao:3.0.1'
    compile'org.greenrobot:greendao-generator:3.0.0'
    

    3.module的build.gradle根级别下配置:

    greendao {
        schemaVersion 1 //数据库版本号
        daoPackage 'com.paradoxie.demo.dao'  //生成的dao路径
        targetGenDir 'src/main/java'    //数据库文件的目录
    }
    

    4.在project的在build.gradle中配置:

     dependencies {
        classpath 'com.android.tools.build:gradle:2.2.1'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'//添加
        
      }
    

    5.编写java实体类,注意注解:

    @Entity
    public class Advert {
        @Id
        private Long id;//主键id,必须Long型
        private String classify;//广告类型
        private String times;//广告次数
        private String time;//广告时长
    

    更多注解类型不在此列出,写完以上实体类属性后,编译,编译,编译,自动生成get、set内容以及第三步中配置的com.paradoxie.demo.dao目录下三个文件,就是这个:

    文件目录截图

    6.编写MyOpenHelper,升级数据库使用,初步使用可以忽略:

    文件目录截图

    7.编写核心类DbCore,构造方法略过,主要是两个静态方法:

     public static DaoMaster getDaoMaster() {
        if (daoMaster == null) {
            //自定义辅助类;DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失,此处使用OpenHelper。
            DaoMaster.OpenHelper helper = new MyOpenHelper(mContext, DB_NAME);
            daoMaster = new DaoMaster(helper.getWritableDatabase());
        }
        return daoMaster;
    }
    
    public static DaoSession getDaoSession() {
        if (daoSession == null) {
            if (daoMaster == null) {
                daoMaster = getDaoMaster();
            }
            daoSession = daoMaster.newSession();
        }
        return daoSession;
    }
    

    8.在自定义MyApplication中初始化:

     @Override
    public void onCreate() {
        super.onCreate();
        //初始化数据库
        DbCore.init(this);
    }
    

    9.实例化mAdvertDao后,用其操作实体bean对象,例如:

     mAdvertDao.insert(T entity);//增
     mAdvertDao.delete(T entity);//删
     mAdvertDao.update(T entity);//改
     mAdvertDao.load(K key);//查
    

    以上操作都有其他操作方法,可以跟进源码查看。

    最后

    以上配置和使用的简单说明,下面demo中有两个activity,来看数据库的不用管第二个哈。

    如有帮助,不胜荣幸。

    上代码! Demo


    本文作者:paradoxie
    个人主页:谢盒盒的小黑屋,不止说技术
    简书地址:简书主页,专注说技术
    github地址:paradoxie
    转载请注明出处,蟹蟹!
    -------我的梦想真的是做一条咸鱼!

    相关文章

      网友评论

        本文标题:《Android APP可以有的东西》之数据库篇:GreenDa

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