Using GreenDao with Android Studio

Step 1 - 建立 Android Application

這裡假設你已經在 Android Studio 中建立一個新的 Android Application,如果還沒有的話,請先建立一個新的 Android Application。

新建立好的 Android Application 的結構應如下:

├── app

│   ├── build.gradle

│   ├── libs

│   └── src

│      ├── androidTest

│      └── main

│          ├── AndroidManifest.xml

│          ├── java

│          │   └── cloudchen

│          │      └── com

│          │          └── daodemoexample

│          │              └── MainActivity.java

│          └── res

├── build.gradle

└── settings.gradle

* created under Android Studio 1.1 perview 1

Step 2 - 建立 DaoGenerator Module

File-->New Module...

選擇More Modules中的Java Library

填入對應的資訊

Step 3 - 編輯 DaoGenerator

執行到 Step 2 後,現在的資料夾結構應該像下圖這樣,有一個我們原本的 app module (Android Application),以及一個剛剛建立好的 daogenerator module (Java Library),並且新增了一個屬於 daogenerator module 的build.gradle檔案

編輯 build.gradle

因為這個daogeneratormodule 必須用到DaoGenerator這個由greenrobot所開發的 library,故我們必須編輯我們的daogenerator/build.gradle檔案,加入下面的相依套件:

dependencies{compilefileTree(dir:'libs',include:['*.jar'])// add DaoGeneratorcompile'de.greenrobot:DaoGenerator:1.3.0'}

編輯 MyDaoGenerator.java

設定好build.gradle檔案之後,就可以開始利用DaoGenerator來編寫我們的 Schema 了,譬如建立一個 User 資料表:

packagecom.cloudchen;

importjava.io.IOException;

importjava.nio.file.Files;

importjava.nio.file.LinkOption;

importjava.nio.file.Path;

importjava.nio.file.Paths;

importjava.nio.file.attribute.FileAttribute;

importjava.nio.file.attribute.PosixFilePermission;

importjava.nio.file.attribute.PosixFilePermissions;

importjava.util.Set;

importde.greenrobot.daogenerator.DaoGenerator;

importde.greenrobot.daogenerator.Entity;

importde.greenrobot.daogenerator.Schema;

publicclassMyDaoGenerator{

privatestaticfinalStringGENERATED_SRC_DIR="./app/gen-src";

publicstaticvoidmain(String[]args)throwsException{

Schemaschema=newSchema(1,MyDaoGenerator.class.getPackage().getName());

Entityentity=schema.addEntity("User");

entity.addLongProperty("UserId").notNull();

entity.addStringProperty("Password").notNull();

entity.addStringProperty("Name").notNull();

// need to create the folder by ourself, or the generateAll() method will cause I/O error

createDirs(Paths.get(GENERATED_SRC_DIR));

newDaoGenerator().generateAll(schema,GENERATED_SRC_DIR);

}

privatestaticvoidcreateDirs(Pathpath)throwsIOException{

if(Files.notExists(path,LinkOption.NOFOLLOW_LINKS)) {

Setperms=PosixFilePermissions.fromString("rwxr-x---");

FileAttribute>attrs=PosixFilePermissions.asFileAttribute(perms);

Files.createDirectories(path, attrs);

}

}

}

view rawMyDaoGenerator.javahosted with ❤ byGitHub

Run Configuration

選擇Run --> Edit Configurations...替我們的DaoGenerator新增一個執行設定

點選視窗左上角的+並新增一個Application的設置

設定所需參數

Name:這個設定檔的名稱,可任意命名

Main Class:你的 MyDaoGenerator.java 的位置

Use classpath of module:選擇 daogenerator module

設定完成後,選擇剛剛編輯好的設定,並且執行:

若是執行過程中沒有出錯,我們應該可以在我們的主要 module - 也就是app module中,找到新建立的gen-src資料夾,並且發現 DaoGenerator 已經幫我們把這些自動產生的類別給建立好了!

新增 greendao library

現在若是您點擊利用 DaoGenerator 所產生的DaoMaster.java或是其他自動產生的檔案,你會發現 Android Studio 的編譯器沒有辦法解析某些檔案內所使用到類別,那是因為這些類別是包在greenDao這個 library 的,我們還沒有引用它,所以再度編輯app/build.gradle,並且加上

dependencies{compilefileTree(dir:'libs',include:['*.jar'])compile'com.android.support:appcompat-v7:21.0.2'//add greendao librarycompile'de.greenrobot:greendao:1.3.7'}

再次重新 Sync Gradle 的設置之後,我們就可以開始使用 GreenDao 帶給我們的便利囉!


http://cloudchen.com/using-greendao-with-android-studio/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容