美文网首页Android开发实战总结
Android GreenDao使用和数据库迁移详解

Android GreenDao使用和数据库迁移详解

作者: AKyS佐毅 | 来源:发表于2017-11-03 10:44 被阅读201次

    1、GreenDao 介绍:

    • greenDAO是一个对象关系映射(ORM)的框架,能够提供一个接口通过操作对象的方式去操作关系型数据库,它能够让你操作数据库时更简单、更方便。如下图所示:
    image

    先放Demo,Demo地址戳这里👇

    2、GreenDao 优点:

    • 性能高,号称Android最快的关系型数据库

    • 内存占用小

      • 库文件比较小,小于100K,编译时间低,而且可以避免65K方法限制
    • 支持数据库加密 greendao支持SQLCipher进行数据库加密 有关SQLCipher可以参考这篇博客Android数据存储之Sqlite采用SQLCipher数据库加密实战

    • 简洁易用的API

    3、在build.grade中配置插件信息并引入依赖包

    // In your root build.gradle file: 设置脚本的运行环境(如果用在app启动模块,直接加3,4步,在lib模块整个需要加进去)
    buildscript {
        repositories {
            jcenter()
            mavenCentral() // add repository 支持java 依赖库管理(maven/ivy),用于项目的依赖。
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.3.3'
            classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin 依赖包的定义。支持maven/ivy,远程,本地库,也支持单文件
        }
    }
     
    // In your app projects build.gradle file:
    apply plugin: 'com.android.application'
    apply plugin: 'org.greenrobot.greendao' // apply plugin  声明添加的插件类型
     
    dependencies {
        compile 'org.greenrobot:greendao:3.2.2' // add library
    }
    
    //自定义Greendao版本和生成路径
    greendao {
        //数据库版本号,数据库修改后这里一定要记得修改,否则会报错no such table
        schemaVersion 1
        //通过gradle插件生成的数据库相关文件的包名,默认为你的entity所在的包名
        daoPackage ''com.example.kenvin.greendaodemo.gen''
        //这就是我们上面说到的自定义生成数据库文件的目录了,可以将生成的文件放到我们的java目录中
        ,而不是build中,这样就不用额外的设置资源目录了
        targetGenDir 'src/main/java'
    }
    

    具体截图如下:


    app projects build.gradle root build.gradle

    4 、创建一个实体类,实体类添加@Entity注解

    实体类添加@Entity注解

    5、build(Build->Make Project)项目

    • 会自动生成一些数据库相关类,这些类在build.gradle里设置的目录下,而且实体类里面也会自动生成get/set方法


      build(Build->Make Project)项目
    • DaoMaster:使用greenDAO的切入点。DaoMaster保存数据库对象(SQLiteDatabase)并管理特定模式的DAO类(而不是对象)。 它具有静态方法来创建表或将它们删除。 其内部类OpenHelper和DevOpenHelper是在SQLite数据库中创建模式的SQLiteOpenHelper实现。一个DaoMaster就代表着一个数据库的连接。

    • DaoSession:管理特定模式的所有可用DAO对象,您可以使用其中一个getter方法获取。 DaoSession还为实体提供了一些通用的持久性方法,如插入,加载,更新,刷新和删除。 DaoSession可以让我们使用一些Entity的基本操作和获取Dao操作类,DaoSession可以创建多个,每一个都是属于同一个数据库连接的。

    • XxxDAO:数据访问对象(DAO)持续存在并查询实体。 对于每个实体,GreenDAO生成一个DAO。 它比DaoSession有更多的持久化方法,例如:count,loadAll和insertInTx。

    6、greenDao的简单使用

    • 1、创建数据库管理类
      使用单例模式
    使用单例模式
    • 2、获取可读数据库


      获取可读数据库
    • 3、获取可写数据库


      获取可写数据库
    • 4、插入一条记录


      插入一条记录

      -5 、插入用户集合


      插入用户集合
    • 6、删除一条记录


      删除一条记录

      -7、更新一条记录


      更新一条记录
      -8、查询用户列表
      查询用户列表

    7、 数据库版本升级

    数据库版本升级

    在这里修改数据库版本号

    在这里修改数据库版本号

    相关文章

      网友评论

      • AKyS佐毅:单例时,最好使用ApplicationContext。

      本文标题:Android GreenDao使用和数据库迁移详解

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