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

1、GreenDao 介绍:

  • greenDAO是一个对象关系映射(ORM)的框架,能够提供一个接口通过操作对象的方式去操作关系型数据库,它能够让你操作数据库时更简单、更方便。如下图所示:
Android GreenDao使用和数据库迁移详解_第1张图片
image
  • 官网地址:http://greenrobot.org/greendao/

  • github:https://github.com/greenrobot/greenDAO

先放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'
}

具体截图如下:


Android GreenDao使用和数据库迁移详解_第2张图片
app projects build.gradle
Android GreenDao使用和数据库迁移详解_第3张图片
root build.gradle

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

Android GreenDao使用和数据库迁移详解_第4张图片
实体类添加@Entity注解

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

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


    Android GreenDao使用和数据库迁移详解_第5张图片
    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、创建数据库管理类
    使用单例模式
Android GreenDao使用和数据库迁移详解_第6张图片
使用单例模式
  • 2、获取可读数据库


    Android GreenDao使用和数据库迁移详解_第7张图片
    获取可读数据库
  • 3、获取可写数据库


    Android GreenDao使用和数据库迁移详解_第8张图片
    获取可写数据库
  • 4、插入一条记录


    Android GreenDao使用和数据库迁移详解_第9张图片
    插入一条记录

    -5 、插入用户集合


    Android GreenDao使用和数据库迁移详解_第10张图片
    插入用户集合
  • 6、删除一条记录


    Android GreenDao使用和数据库迁移详解_第11张图片
    删除一条记录

    -7、更新一条记录


    Android GreenDao使用和数据库迁移详解_第12张图片
    更新一条记录

    -8、查询用户列表
    Android GreenDao使用和数据库迁移详解_第13张图片
    查询用户列表

7、 数据库版本升级

Android GreenDao使用和数据库迁移详解_第14张图片
数据库版本升级

在这里修改数据库版本号

Android GreenDao使用和数据库迁移详解_第15张图片
在这里修改数据库版本号

你可能感兴趣的:(Android GreenDao使用和数据库迁移详解)