1逼龟、GreenDao 介紹:
- greenDAO是一個(gè)對(duì)象關(guān)系映射(ORM)的框架内地,能夠提供一個(gè)接口通過操作對(duì)象的方式去操作關(guān)系型數(shù)據(jù)庫窟扑,它能夠讓你操作數(shù)據(jù)庫時(shí)更簡(jiǎn)單、更方便袋马。如下圖所示:
官網(wǎng)地址:http://greenrobot.org/greendao/
2、GreenDao 優(yōu)點(diǎn):
性能高虑凛,號(hào)稱Android最快的關(guān)系型數(shù)據(jù)庫
-
內(nèi)存占用小
- 庫文件比較小碑宴,小于100K软啼,編譯時(shí)間低,而且可以避免65K方法限制
支持?jǐn)?shù)據(jù)庫加密 greendao支持SQLCipher進(jìn)行數(shù)據(jù)庫加密 有關(guān)SQLCipher可以參考這篇博客Android數(shù)據(jù)存儲(chǔ)之Sqlite采用SQLCipher數(shù)據(jù)庫加密實(shí)戰(zhàn)
簡(jiǎn)潔易用的API
3延柠、在build.grade中配置插件信息并引入依賴包
// In your root build.gradle file: 設(shè)置腳本的運(yùn)行環(huán)境(如果用在app啟動(dòng)模塊祸挪,直接加3,4步,在lib模塊整個(gè)需要加進(jìn)去)
buildscript {
repositories {
jcenter()
mavenCentral() // add repository 支持java 依賴庫管理(maven/ivy),用于項(xiàng)目的依賴。
}
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ù)庫版本號(hào)闪唆,數(shù)據(jù)庫修改后這里一定要記得修改,否則會(huì)報(bào)錯(cuò)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)建一個(gè)實(shí)體類,實(shí)體類添加@Entity注解
5豆同、build(Build->Make Project)項(xiàng)目
-
會(huì)自動(dòng)生成一些數(shù)據(jù)庫相關(guān)類番刊,這些類在build.gradle里設(shè)置的目錄下,而且實(shí)體類里面也會(huì)自動(dòng)生成get/set方法
DaoMaster:使用greenDAO的切入點(diǎn)影锈。DaoMaster保存數(shù)據(jù)庫對(duì)象(SQLiteDatabase)并管理特定模式的DAO類(而不是對(duì)象)芹务。 它具有靜態(tài)方法來創(chuàng)建表或?qū)⑺鼈儎h除。 其內(nèi)部類OpenHelper和DevOpenHelper是在SQLite數(shù)據(jù)庫中創(chuàng)建模式的SQLiteOpenHelper實(shí)現(xiàn)鸭廷。一個(gè)DaoMaster就代表著一個(gè)數(shù)據(jù)庫的連接枣抱。
DaoSession:管理特定模式的所有可用DAO對(duì)象,您可以使用其中一個(gè)getter方法獲取辆床。 DaoSession還為實(shí)體提供了一些通用的持久性方法佳晶,如插入,加載讼载,更新轿秧,刷新和刪除。 DaoSession可以讓我們使用一些Entity的基本操作和獲取Dao操作類咨堤,DaoSession可以創(chuàng)建多個(gè)菇篡,每一個(gè)都是屬于同一個(gè)數(shù)據(jù)庫連接的。
XxxDAO:數(shù)據(jù)訪問對(duì)象(DAO)持續(xù)存在并查詢實(shí)體吱型。 對(duì)于每個(gè)實(shí)體逸贾,GreenDAO生成一個(gè)DAO。 它比DaoSession有更多的持久化方法津滞,例如:count铝侵,loadAll和insertInTx。
6触徐、greenDao的簡(jiǎn)單使用
- 1咪鲜、創(chuàng)建數(shù)據(jù)庫管理類
使用單例模式
-
2、獲取可讀數(shù)據(jù)庫
-
3撞鹉、獲取可寫數(shù)據(jù)庫
-
4疟丙、插入一條記錄
-5 、插入用戶集合
-
6鸟雏、刪除一條記錄
-7享郊、更新一條記錄
-8、查詢用戶列表
7孝鹊、 數(shù)據(jù)庫版本升級(jí)
在這里修改數(shù)據(jù)庫版本號(hào)