Android Studio中 GreenDao 基本配置

一、需要在工程的build.gradle中添加依赖

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0'
        //GreenDao3依赖
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
    }
}

二、在项目(Module)的build.gradle中添加依赖

apply plugin: 'com.android.application'
//使用greendao
apply plugin: 'org.greenrobot.greendao'android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.handsome.didi"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    //greendao配置
    greendao {
        //版本号,升级时可配置
        schemaVersion 1                             
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    //greendao依赖
    compile 'org.greenrobot:greendao:3.2.0'
}配置完成。

三、1、Bean实体的构造方法和get、set方法

2. DaoMaster、DaoSession、DAOS

注解:

@Entity   标识实体类,greenDAO会映射成sqlite的一个表,表名为实体类名的大写形式

@Id 标识主键,该字段的类型为long或Long类型,autoincrement设置是否自动增长

@Property       标识该属性在表中对应的列名称, nameInDb设置名称

@Transient      标识该属性将不会映射到表中,也就是没有这列

@NotNull         设置表中当前列的值不可为空

@Convert         指定自定义类型(@linkPropertyConverter)

@Generated   greenDAO运行所产生的构造函数或者方法,被此标注的代码可以变更或者下次运行时清除

@Index    使用@Index作为一个属性来创建一个索引;定义多列索引(@link Entity#indexes())

@JoinEntity     定义表连接关系

@JoinProperty         定义名称和引用名称属性关系

@Keep     注解的代码段在GreenDao下次运行时保持不变

         1.注解实体类:默认禁止修改此类
          2.注解其他代码段,默认禁止修改注解的代码段

@OrderBy        指定排序

@ToMany         定义与多个实体对象的关系

@ToOne  定义与另一个实体(一个实体对象)的关系

@Unique 向数据库列添加了一个唯一的约束

  1. void    attachEntity(T entity):    
  2.     
  3. long    count():获取数据库中数据的数量    
  4.     
  5. // 数据删除相关    
  6. void    delete(T entity):从数据库中删除给定的实体    
  7. void    deleteAll() :删除数据库中全部数据    
  8. void    deleteByKey(K key):从数据库中删除给定Key所对应的实体    
  9. void    deleteByKeyInTx(java.lang.Iterable<K> keys):使用事务操作删除数据库中给定的所有key所对应的实体    
  10. void    deleteByKeyInTx(K... keys):使用事务操作删除数据库中给定的所有key所对应的实体    
  11. void    deleteInTx(java.lang.Iterable<T> entities):使用事务操作删除数据库中给定实体集合中的实体    
  12. void    deleteInTx(T... entities):使用事务操作删除数据库中给定的实体    
  13.     
  14. // 数据插入相关    
  15. long    insert(T entity):将给定的实体插入数据库    
  16. void    insertInTx(java.lang.Iterable<T> entities):使用事务操作,将给定的实体集合插入数据库    
  17. void    insertInTx(java.lang.Iterable<T> entities, boolean setPrimaryKey):使用事务操作,将给定的实体集合插入数据库,    
  18.                                                                                                                 并设置是否设定主键    
  19. void    insertInTx(T... entities):将给定的实体插入数据库    
  20. long    insertOrReplace(T entity):将给定的实体插入数据库,若此实体类存在,则覆盖    
  21. void    insertOrReplaceInTx(java.lang.Iterable<T> entities):使用事务操作,将给定的实体插入数据库,若此实体类存在,则覆盖    
  22. void    insertOrReplaceInTx(java.lang.Iterable<T> entities, boolean setPrimaryKey):使用事务操作,将给定的实体插入数据库,若此实体类存在,则覆盖    
  23.                                                                                                                             并设置是否设定主键    
  24. void    insertOrReplaceInTx(T... entities):使用事务操作,将给定的实体插入数据库,若此实体类存在,则覆盖    
  25. long    insertWithoutSettingPk(T entity):将给定的实体插入数据库,但不设定主键    
  26.     
  27. // 新增数据插入相关API    
  28. void    save(T entity):将给定的实体插入数据库,若此实体类存在,则更新    
  29. void    saveInTx(java.lang.Iterable<T> entities):将给定的实体插入数据库,若此实体类存在,则更新    
  30. void    saveInTx(T... entities):使用事务操作,将给定的实体插入数据库,若此实体类存在,则更新    
  31.     
  32. // 加载相关    
  33. T   load(K key):加载给定主键的实体    
  34. java.util.List<T>     loadAll():加载数据库中所有的实体    
  35. protected java.util.List<T>   loadAllAndCloseCursor(android.database.Cursor cursor) :从cursor中读取、返回实体的列表,并关闭该cursor    
  36. protected java.util.List<T>   loadAllFromCursor(android.database.Cursor cursor):从cursor中读取、返回实体的列表    
  37. T   loadByRowId(long rowId) :加载某一行并返回该行的实体    
  38. protected T     loadUnique(android.database.Cursor cursor) :从cursor中读取、返回唯一实体    
  39. protected T     loadUniqueAndCloseCursor(android.database.Cursor cursor) :从cursor中读取、返回唯一实体,并关闭该cursor    
  40.     
  41. //更新数据    
  42. void    update(T entity) :更新给定的实体    
  43. protected void  updateInsideSynchronized(T entity, DatabaseStatement stmt, boolean lock)     
  44. protected void  updateInsideSynchronized(T entity, android.database.sqlite.SQLiteStatement stmt, boolean lock)     
  45. void    updateInTx(java.lang.Iterable<T> entities) :使用事务操作,更新给定的实体    
  46. void    updateInTx(T... entities):使用事务操作,更新给定的实体   

猜你喜欢

转载自blog.csdn.net/li_wen_jin/article/details/77076352