Android数据库GreenDAO3.2.2的使用(一,集成数据库)

来源:互联网 发布:什么叫国内数据流量 编辑:程序博客网 时间:2024/05/18 02:13

由于项目新加入离线功能,因此需要本地数据库,好久没有使用数据库了,就比较各个数据库的优缺点,最终选择了GreenDao。虽说集成时候有些麻烦和一些坑,但是解决问题后,这个数据库还是挺好用的。

一、阅读官方文档对集成还是很有帮助的,GreenDAO的官方文档:http://greenrobot.org/greendao/documentation/

二、添加依赖

      1、在项目的Project的build.gradle里的builddscript添加配置mavenCental(),

            在dependencies 里添加
            classpath'org.greenrobot:greendao-gradle-plugin:3.2.2'

buildscript {    repositories {        jcenter()        mavenCentral() // add repository    }    dependencies {        classpath 'com.android.tools.build:gradle:2.2.3'        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin    }}
      2、在Module:app 里的build.gradle里添加

apply plugin: 'com.android.application'apply plugin: 'org.greenrobot.greendao' // apply plugin
      3、 Module:app 里的build.gradle下dependencies 里添加

dependencies {    compile 'org.greenrobot:greendao:3.2.2'}
    4、 Module:app 里的build.gradle下android 里添加

greendao {    schemaVersion 1//数据库版本号    daoPackage 'com.yushiji.greendao.gen'//设置DaoMaster、DaoSession、Dao包名    targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录    //targetGenDirTest:设置生成单元测试目录    //generateTests:设置自动生成单元测试用例}
三、创建实体类即创建表

        在实体类 上方 写 上 @Entity 即可!然后makeProject就会自动生成set get 方法。

@Entitypublic class User {    @Id(autoincrement = true)    private Long id;    private String name;    private String age;    private String sex;    private String salary;}
通过@Entity那么这个类便成了数据库中的一张表,而@Id 此表明这是表的主键。当我们build工程之后我们会发现,GreenDAO替我们默认生成了:


四、GreenDao中的注释

        1、 @Entity 定义实体
               @nameInDb 在数据库中的名字,如不写则为实体中类名
               @indexes 索引
               @createInDb 是否创建表,默认为true,false时不创建
               @schema 指定架构名称为实体
               @active 无论是更新生成都刷新
        2、 @Id 主键 Long型,可以通过@Id(autoincrement = true)设置自增长
        3、@NotNull 不为null
        4、@Unique 唯一约束
        5、 @ToMany 一对多
        6、 @OrderBy 排序
        7、@ToOne 一对一
        8、@Transient 不存储在数据库中
        9、 @generated 由greendao产生的构造函数或方法

主键Id的类型和注释在使用过程中还遇到过坑,下篇文章会介绍一下。

更多的操作和更高级的使用,大家可以根据需要去查找资料或者阅读官网,本文有任何问题欢迎大家指正批评。

阅读全文
2 0
原创粉丝点击