1. 程式人生 > >Android資料庫GreenDAO3.2.2的使用(一,整合資料庫)

Android資料庫GreenDAO3.2.2的使用(一,整合資料庫)

由於專案新加入離線功能,因此需要本地資料庫,好久沒有使用資料庫了,就比較各個資料庫的優缺點,最終選擇了GreenDao。雖說整合時候有些麻煩和一些坑,但是解決問題後,這個資料庫還是挺好用的。

二、新增依賴

      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 方法。

@Entity
public 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的型別和註釋在使用過程中還遇到過坑,下篇文章會介紹一下。

更多的操作和更高階的使用,大家可以根據需要去查詢資料或者閱讀官網,本文有任何問題歡迎大家指正批評。