2014年10月3日 星期五

好用的ORM library for Android : greenDAO (二) 快速上手

甚麼是ORM?

用(OO)物件導向的方法來操作資料庫。


greenDAO的特色

  1. 採code generation,不用reflection。速度比較快(vs ORMLite如下圖)
  2. 原始碼檔案<100K,不增加APK負擔
  3.  Open Source(Apache License)
  4. 已被廣泛使用 (Camera360、Path等App已有在使用)

greeDAO使用方法

關於greenDAO的使用在上一篇當中應該大家已經有感覺了吧,但是要擁有這樣的便利之前須要有些準備工作,基本上就是下面這張圖,以下幾點針對這張圖做說明:
  1. (圖的左上角)假設我們要設計有著書架Bookshelf跟書Book的書店Bookstore資料庫,先設計好資料庫的的Schema-Model:一個書架上可以有多本書。 greenDAO採用code generation的方式預先把entity code產出。要先在一個名為"greendao-generator"的Java Project(不是Android Project!)當中把Entities(Table)、Properties(欄位)、Relations(FK,PK)、Indexes(索引)定義好
  2. (圖的左下角)這個Java Project必須包含2個library: greenDAO Generator Lib(greenDAO-generator.jar)、跟FreeMaker Lib(freemarker.jar)
  3. (中間箭頭部分)執行Java Project,記得產出的路徑要設為Android Project的workspace路徑
  4. (圖的右上角)重新整理Android Project,發現在Android專案下多了一個src-gen資料夾
  5. (圖的右下角)在Android專案當中libs資料夾下加入greenDAO Core Lib (ex. greendao-1.3.0-beta-1.jar)

實際的Step By Step

1. 到https://github.com/greenrobot/greenDAO, clone到你的local disk (or 點選頁面右下角的download)
2. 開啓eclipse ,把剛剛下載的project import 進來 , 選擇Import Existing Android Code into Workspace  , 其他兩個測試用的project可以不用理他
3.  接下來再import 2個Java Project (不是Android Project喲)
4. 勾選需要的Project, 這兩個Project是用來自動產生code的(利用一個叫做Freemaker.jar的工具, 等等會談到),   這個專案的主要工作是產生DAO類別,與要操作的Entity類別, 對於DAO不了解的捧有請自行Google 一下
5. Download Freemaker.jar到local disk, 並用你喜歡的方式加入到build path當中
6. 到此為止應該只剩下一個project有叉叉了 
7. 把DaoGenerator這個project export成jar
8. 找到剛剛叉叉的Project, DaoExampleGenerator , 在build path加入external jar
9. 呼 大功告成啦 , 至於該怎麼用, 下次再說

沒有留言:

張貼留言