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 repository2、在Module:app 裡的build.gradle裡新增} dependencies { classpath 'com.android.tools.build:gradle:2.2.3' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin } }
apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao' // apply plugin3、 Module:app 裡的build.gradle下
的
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的型別和註釋在使用過程中還遇到過坑,下篇文章會介紹一下。
更多的操作和更高階的使用,大家可以根據需要去查詢資料或者閱讀官網,本文有任何問題歡迎大家指正批評。