個人也比較喜歡使用這種方式建立表
使用 Generator 與 註解方式建立表有蠻大的差異
所需要導入的方式也不太一樣
在build.gradle(Module:app) 中添加 GreenDao 依賴如下所示
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile 'org.greenrobot:greendao:3.2.2' // add library
}
接下來 Flie -> New -> New Module 選擇 Java Library建立好一個 Java Library 之後點選該 lib 的 gradle 進行 greendao-generator 依賴添加
apply plugin: 'java'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'org.greenrobot:greendao-generator:3.2.0'//add generator
}
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
以上依賴添加完畢之後就可以開始進行建表的動作在 lib 中建立一個 class 然後添加以下程式碼
package com.example;
import org.greenrobot.greendao.generator.DaoGenerator;
import org.greenrobot.greendao.generator.Entity;
import org.greenrobot.greendao.generator.Schema;
public class MyClass {
private static int DB_VERSION = 1;
private static String PACKAGE_NAME = "com.jrtou.greendaodemo2";
public static void main(String[] args) {
//第一個參數為 db 版本號
//第二參數為建立 dao相關 .java 檔位置
Schema schema = new Schema(DB_VERSION, PACKAGE_NAME+"/sqlite");
createBook(schema);//建立book表
try {
//第二參數為 generator 產生 .java 檔放置路徑
new DaoGenerator().generateAll(schema, "../GreenDaoDemo2/app/src/main/java/");
} catch (Exception e) {
e.printStackTrace();
}
}
private static void createBook(Schema schema) {
Entity book = schema.addEntity("BookEntity");//建立 book entry
book.addIdProperty().autoincrement().primaryKey();//建立 id欄位 pk long 屬性 自動增長
book.addStringProperty("Name").notNull();//建立 name 欄位 不能為空 string 屬性
book.addIntProperty("Price").notNull();//建立 price 欄位 不能為空 int 屬性
book.addStringProperty("Memo");//建立 memo 欄位 string 屬性
}
}
DB_VERSION 不用解釋就是 Databases 版本號
PACKAGE_NAME 為使用 generator 幫你產生相關程式碼所放置的路徑
但必須要先建立好資料夾不然它會找不到資料夾放置會報錯
至於為什麼要放置在 package name 先把 Android Studio 資料夾結構切換到 Project
我們一般使用的程式碼都是放置在 package name
看以上圖應該很好理解為什麼要PACKAGE_NAME+/sqlite
(sqlite 可以替換成你想要的資料夾名稱)
接下來為 new DaoGenerator().generateAll(schema,"../GreenDaoDemo2/app/src/main/java/)
中的第二個參數請看下圖
這樣應該很好理解為什麼要這麼做,
網路上很多都是在建立一個與app/src/main/java 同層的資料夾
還需要在 gradle 中添加設定太麻煩了
直接生產到你想放置的地方
或是第二個參數改為你電腦上的某的位置中資料夾
自己在複製檔案過去想放置的地方也可以
建表的方式在剛剛呈現的程式碼中都有註解不太難理解
表就是 Entity
欄位就是 Property
想要什麼設定都跟 sql 語法有點像都幫你封裝成程式碼讓你選擇
建立表的程式碼完成後點選滑鼠右鍵 Run your class.main()
來執行生產動作
執行沒有錯誤就代表生產成功可以
開始使用 GreenDao 進行 Sqlite 操作了
0 意見:
張貼留言