1、GreenDao 介紹:
- greenDAO是一個對象關(guān)系映射(ORM)的框架,能夠提供一個接口通過操作對象的方式去操作關(guān)系型數(shù)據(jù)庫,它能夠讓你操作數(shù)據(jù)庫時更簡單、更方便。如下圖所示:

官網(wǎng)地址:http://greenrobot.org/greendao/
2、GreenDao 優(yōu)點:
性能高,號稱Android最快的關(guān)系型數(shù)據(jù)庫
-
內(nèi)存占用小
- 庫文件比較小,小于100K,編譯時間低,而且可以避免65K方法限制
支持?jǐn)?shù)據(jù)庫加密 greendao支持SQLCipher進(jìn)行數(shù)據(jù)庫加密 有關(guān)SQLCipher可以參考這篇博客Android數(shù)據(jù)存儲之Sqlite采用SQLCipher數(shù)據(jù)庫加密實戰(zhàn)
簡潔易用的API
3、在build.grade中配置插件信息并引入依賴包
// In your root build.gradle file: 設(shè)置腳本的運行環(huán)境(如果用在app啟動模塊,直接加3,4步,在lib模塊整個需要加進(jìn)去)
buildscript {
repositories {
jcenter()
mavenCentral() // add repository 支持java 依賴庫管理(maven/ivy),用于項目的依賴。
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin 依賴包的定義。支持maven/ivy,遠(yuǎn)程,本地庫,也支持單文件
}
}
// In your app projects build.gradle file:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin 聲明添加的插件類型
dependencies {
compile 'org.greenrobot:greendao:3.2.2' // add library
}
//自定義Greendao版本和生成路徑
greendao {
//數(shù)據(jù)庫版本號,數(shù)據(jù)庫修改后這里一定要記得修改,否則會報錯no such table
schemaVersion 1
//通過gradle插件生成的數(shù)據(jù)庫相關(guān)文件的包名,默認(rèn)為你的entity所在的包名
daoPackage ''com.example.kenvin.greendaodemo.gen''
//這就是我們上面說到的自定義生成數(shù)據(jù)庫文件的目錄了,可以將生成的文件放到我們的java目錄中
,而不是build中,這樣就不用額外的設(shè)置資源目錄了
targetGenDir 'src/main/java'
}
具體截圖如下:


4 、創(chuàng)建一個實體類,實體類添加@Entity注解

5、build(Build->Make Project)項目
-
會自動生成一些數(shù)據(jù)庫相關(guān)類,這些類在build.gradle里設(shè)置的目錄下,而且實體類里面也會自動生成get/set方法
build(Build->Make Project)項目 DaoMaster:使用greenDAO的切入點。DaoMaster保存數(shù)據(jù)庫對象(SQLiteDatabase)并管理特定模式的DAO類(而不是對象)。 它具有靜態(tài)方法來創(chuàng)建表或?qū)⑺鼈儎h除。 其內(nèi)部類OpenHelper和DevOpenHelper是在SQLite數(shù)據(jù)庫中創(chuàng)建模式的SQLiteOpenHelper實現(xiàn)。一個DaoMaster就代表著一個數(shù)據(jù)庫的連接。
DaoSession:管理特定模式的所有可用DAO對象,您可以使用其中一個getter方法獲取。 DaoSession還為實體提供了一些通用的持久性方法,如插入,加載,更新,刷新和刪除。 DaoSession可以讓我們使用一些Entity的基本操作和獲取Dao操作類,DaoSession可以創(chuàng)建多個,每一個都是屬于同一個數(shù)據(jù)庫連接的。
XxxDAO:數(shù)據(jù)訪問對象(DAO)持續(xù)存在并查詢實體。 對于每個實體,GreenDAO生成一個DAO。 它比DaoSession有更多的持久化方法,例如:count,loadAll和insertInTx。
6、greenDao的簡單使用
- 1、創(chuàng)建數(shù)據(jù)庫管理類
使用單例模式

-
2、獲取可讀數(shù)據(jù)庫
獲取可讀數(shù)據(jù)庫 -
3、獲取可寫數(shù)據(jù)庫
獲取可寫數(shù)據(jù)庫 -
4、插入一條記錄
插入一條記錄
-5 、插入用戶集合
插入用戶集合 -
6、刪除一條記錄
刪除一條記錄
-7、更新一條記錄
更新一條記錄
-8、查詢用戶列表
查詢用戶列表
7、 數(shù)據(jù)庫版本升級

在這里修改數(shù)據(jù)庫版本號








