greenDao 3的引入
導入AS
app module下build.gradle
buildscript { dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' } } apply plugin: 'org.greenrobot.greendao' dependencies { compile 'org.greenrobot:greendao:3.0.1' }
也可以在project/build.gradle下添加
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.2' classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' } }
java 類
註解: @Entity
可配置的參數:
- schema
- active
設置爲active時,那麼此entity有update/delete/refresh方法 - nameInDb
指定在數據庫中對應的表名稱 - indexes:表示在本表下存在多個字段索引
- createInDb
標識,默認爲true,如果設置爲false,則是指定多個實體對應一個表,或者表被創建在greenDao之外
註解: @Id
選擇一個long/Long類型的屬性做eneity ID,對應於數據庫表中的主鍵
可配置的參數
- autoincrement
註解: @Property
對應於表中的字段,如果不設置,則默認java類屬性對應相同的表字段
註解: @NotNull
使一個屬性不爲空在數據庫表中
註解: @Transient
指定屬性不具有持久性,僅僅使用一個暫時的狀態
註解: @index
指定一個屬性作爲索引中的字段
可配置的參數
- name
修改在索引中的字段名,不使用默認的 - unique
使此字段的值唯一
註解: @Unique
給字段一個UNIQUE約束
註解: @ToOne
一對一
可配置的參數
joinProperty
註解: @ToMany
一對多
可配置的參數
- referencedJoinProperty2. joinProperties3. JoinEntity
註解: @Keep
保持不混淆
注意
默認自動生成的DaoMaster、DaoSession等文件在build/generated/source/greendao下,所以在build.gradle下 加上
sourceSets { main { java.srcDirs = ['src/main/java', 'build/generated/source/greendao'] } }
也可以在build.gradle指定生成的位置,其他屬性也可以指定
schemaVersion 數據庫的版本號
daoPackage greendao生成的java類存放的包
targetGenDir greendao生成的java類存放的位置,具體位置爲 此位置+包
targetGenDirTest 生成的測試類存放的位置
generateTests 是否生成自動測試
以下爲示例
greendao {
schemaVersion 1
daoPackage "com.amugua.mvptest.base.greendao"
targetGenDir "src/main/java"
}