greenDao3.0詳細(xì)使用教程

greenDao3.0詳細(xì)使用教程

image

greenDao官方文檔:
http://greenrobot.org/greendao/documentation/

greenDao Github地址:
https://github.com/greenrobot/greenDAO

將greenDao添加到項目中

在根build.gradle文件中添加:

// In your root build.gradle file:
buildscript {
repositories {
    jcenter()
    mavenCentral() // add repository
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.1.1'
    classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // 添加此行代碼
    
}
}

在moudle的build.gradle中添加:

// In your app projects build.gradle file:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // 添加此行代碼
 
dependencies {
    implementation 'org.greenrobot:greendao:3.2.2' // 添加greendao依賴
}

基本使用

要在項目中使用greenDAO颁独,您需要創(chuàng)建一個表示應(yīng)用程序中持久數(shù)據(jù)的實體模型祝懂。然后大脉,基于此模型鳖孤,greenDAO為DAO類生成Java代碼杀怠。

您無需任何其他配置即可開始使用greenDAO Gradle插件者冤。但是梳毙,您應(yīng)該考慮至少設(shè)置架構(gòu)版本:

配置greendao基本信息

主要有以下參數(shù):

  • schemaVersion:數(shù)據(jù)庫模式的當(dāng)前版本。這是使用的 * OpenHelpers類模式版本之間遷移奥此。如果更改實體/數(shù)據(jù)庫架構(gòu),則必須增加此值雁比。默認(rèn)為1稚虎。

  • daoPackage:生成的DAO,DaoMaster和DaoSession的包名偎捎。 默認(rèn)為源實體類的包名稱蠢终。

  • targetGenDir:應(yīng)存儲生成的源的位置。 默認(rèn)為構(gòu)建目錄( build / generated / source / greendao)中生成的源文件夾茴她。

  • generateTests: 設(shè)置為true以自動生成單元測試寻拂。

  • targetGenDirTests: 應(yīng)存儲生成的單元測試的基本目錄。默認(rèn)為 src / androidTest / java

在moudle的build.gradle中添加:

android{
    greendao{
        //指定數(shù)據(jù)庫schema版本號败京,遷移等操作會用到;
        schemaVersion 1
        //dao的包名兜喻,包名默認(rèn)是entity所在的包;
        daoPackage 'com.greendao.gen'
        //生成數(shù)據(jù)庫文件的目錄
        targetGenDir 'src/main/java'
    }
}

定義實體類

@Entity
public class User {
    //定于主鍵
    @Id(autoincrement = true)
    private Long id;

    //定于此字段在數(shù)據(jù)庫列的別名赡麦,如果不定義朴皆,會默認(rèn)定義為CUSTOM_NAME
    @Property(nameInDb = "USERNAME")
    private String customName;

    //使該屬性成為數(shù)據(jù)庫端的“NOT NULL”列
    @NotNull
    private int repos;
    
    @Transient
    private int tempUsageCount;

    //@Index為相應(yīng)的數(shù)據(jù)庫列創(chuàng)建數(shù)據(jù)庫索引。使用以下參數(shù)進(jìn)行自定義:
    //name:如果你不喜歡greenDAO為索引生成的默認(rèn)名稱泛粹,你可以在這里指定你的名字遂铡。
    //unique:向索引添加UNIQUE約束,強制所有值都是唯一的
    @Index(unique = true,name="年齡")
    private String age;
    ...
}

定義完實體類后晶姊,通過AndroidStudio build/Make Project為Dao類生產(chǎn)java代碼

image

生成的java類有3個:

  • DaoMaster.java
  • DaoSession.java
  • UserDao.java

DaoMaster 用于數(shù)據(jù)庫連接扒接,通過創(chuàng)建DaoMaster對象獲取DaoSession

daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();

DaoSession 身份范圍和會話“緩存”,管理實體類的Dao類

userDao = daoSession.getUserDao();
userDao.detachAll();

UserDao 操作數(shù)據(jù)庫增刪改查的類

混淆

#greendao start#
-keep class org.greenrobot.greendao.**{*;}
-keep public interface org.greenrobot.greendao.**
-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
public static java.lang.String TABLENAME;
}
-keep class **$Properties
-keep class net.sqlcipher.database.**{*;}
-keep public interface net.sqlcipher.database.**
-dontwarn net.sqlcipher.database.**
-dontwarn org.greenrobot.greendao.**
#greendao end#
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末们衙,一起剝皮案震驚了整個濱河市钾怔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒙挑,老刑警劉巖宗侦,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異忆蚀,居然都是意外死亡矾利,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門馋袜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來男旗,“玉大人,你說我怎么就攤上這事欣鳖〔旎剩” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵泽台,是天一觀的道長什荣。 經(jīng)常有香客問我呀忧,道長,這世上最難降的妖魔是什么溃睹? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮胰坟,結(jié)果婚禮上因篇,老公的妹妹穿的比我還像新娘。我一直安慰自己笔横,他們只是感情好竞滓,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吹缔,像睡著了一般商佑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上厢塘,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天茶没,我揣著相機與錄音,去河邊找鬼晚碾。 笑死抓半,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的格嘁。 我是一名探鬼主播笛求,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼糕簿!你這毒婦竟也來了探入?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤懂诗,失蹤者是張志新(化名)和其女友劉穎蜂嗽,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體响禽,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡徒爹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了芋类。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隆嗅。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖侯繁,靈堂內(nèi)的尸體忽然破棺而出胖喳,到底是詐尸還是另有隱情,我是刑警寧澤贮竟,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布丽焊,位于F島的核電站较剃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏技健。R本人自食惡果不足惜写穴,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雌贱。 院中可真熱鬧啊送,春花似錦、人聲如沸欣孤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽降传。三九已至篷朵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間婆排,已是汗流浹背声旺。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留泽论,地道東北人艾少。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像翼悴,于是被迫代替她去往敵國和親缚够。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容