記錄從greendao2.1升級(jí)到greendao3.2!

才來(lái)公司上班尺栖,需求少嫡纠!時(shí)間充裕些,所以尋思把項(xiàng)目使用第三方升級(jí)一下延赌!首先是GreenDao

在greendao2.1時(shí)代除盏,我們需要在build.gradle中添加以下依賴:

compile 'de.greenrobot:greendao:2.1.0'

然后新建module,并在module中build.gradle添加greendao生成器

????????? compile 'de.greenrobot:greendao-generator:2.1.0'

然后新建自己的generator生成器類挫以!例如:

public class MainDaoGenerator {

public static void main(String[] args) throws Exception {

Schema schema = new Schema(1, "放置生成文件的包名");//

addTeacher(schema);

addUser(schema);//用戶表

addFile(schema);

addSchedule(schema);

addTeacherCourse(schema);

addTeacherClassRoom(schema);

new DaoGenerator().generateAll(schema, "放置生成文件的位置");

}

每次要新建實(shí)體類的時(shí)候直接添加者蠕,最后選中這個(gè)類右鍵? 選擇run生成相對(duì)應(yīng)的bean 、beanDao!

最后我們?cè)谛陆―BHelper幫助類掐松,取得DaoMaster

public static DaoMaster getDaoMaster(Context context) {

if (daoMaster == null) {

DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, "my_db.db", null);

daoMaster = new DaoMaster(helper.getWritableDatabase());

}

return daoMaster;

}



?取得DaoSession


public static DaoSession getDaoSession(Context context) {

if (daoSession == null) {

if (daoMaster == null) {

daoMaster = getDaoMaster(context);

}

daoSession = daoMaster.newSession();

}

return daoSession;

}


初始化我們greendao

public static void init(Context context) {

mContext = context;

instance = new DBHelper();

// 數(shù)據(jù)庫(kù)對(duì)象

daoSession = getDaoSession(mContext);

}


在application中初始化

public void onCreate() {

super.onCreate();

Logger.init("my");

DBHelper.init(getApplicationContext());

}


在這個(gè)BDHelper編寫增刪查改方法就OK蠢棱!

升級(jí)到3.2锌杀!使用的方法就多了一種

首先就是替換module中的

compile 'de.greenrobot:greendao-generator:2.1.0'

換成

compile 'org.greenrobot:greendao-generator:3.2.0'

同步后在類中替換導(dǎo)入greendao的新包名!編譯后運(yùn)行生成新的注解

最后再主工程build.gradle中替換成

compile 'org.greenrobot:greendao:3.2.0'

從新替換導(dǎo)入greendao的包名泻仙,最后重新編譯project糕再,

至此升級(jí)可以算是完成了!

但是在greendao3.2中推薦使用以下插件

classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'

有了我們就可以不使用generator了玉转,

使用步揍突想,按照官方的:

在build.gradle中添加依賴

apply plugin:'org.greenrobot.greendao'

compile 'org.greenrobot:greendao-generator:3.2.0'

android{

......

//greendao配置

greendao {

schemaVersion 1? ? ? ? ? ? ? ? ? ? ? ? ? ? //版本號(hào),升級(jí)時(shí)可配置

//? ? ? ? daoPackage'com.example.admin.mydaggerdemo.dao'? ? //包名

//? ? ? ? targetGenDir'src/main/java'? ? ? ? ? ? ? ? //生成目錄

}

greendao默認(rèn)目錄在build-->generated-->source-->greendao中究抓!

........

}


在主project的build.gradle中添加

buildscript {

repositories {

jcenter()

}

dependencies {

.....

classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'

// NOTE: Do not place your application dependencies here; they belong

// in the individual module build.gradle files

}

}


然后我們編寫我們需要的實(shí)體類猾担,并在實(shí)體中加入注解@Entity!在隨意寫入某些屬性

@Entitypublic class Test {? ? ?

@Id? private int id;

}

直接運(yùn)行project就OK刺下,就能自動(dòng)生成beanDao,并補(bǔ)齊bean!這樣加入插件绑嘹,就可以省去使用genreator了,并且可以學(xué)到新的注解姿勢(shì)橘茉!

注解:

@Entity?? 標(biāo)識(shí)實(shí)體類工腋,greenDAO會(huì)映射成sqlite的一個(gè)表,表名為實(shí)體類名的大寫形式

@Id 標(biāo)識(shí)主鍵畅卓,該字段的類型為long或Long類型擅腰,autoincrement設(shè)置是否自動(dòng)增長(zhǎng)

@Property?????? 標(biāo)識(shí)該屬性在表中對(duì)應(yīng)的列名稱, nameInDb設(shè)置名稱

@Transient????? 標(biāo)識(shí)該屬性將不會(huì)映射到表中,也就是沒有這列

@NotNull???????? 設(shè)置表中當(dāng)前列的值不可為空

@Convert???????? 指定自定義類型(@linkPropertyConverter)

@Generated?? greenDAO運(yùn)行所產(chǎn)生的構(gòu)造函數(shù)或者方法翁潘,被此標(biāo)注的代碼可以變更或者下次運(yùn)行時(shí)清除

@Index??? 使用@Index作為一個(gè)屬性來(lái)創(chuàng)建一個(gè)索引趁冈;定義多列索引(@link Entity#indexes())

@JoinEntity???? 定義表連接關(guān)系

@JoinProperty???????? 定義名稱和引用名稱屬性關(guān)系

@Keep???? 注解的代碼段在GreenDao下次運(yùn)行時(shí)保持不變

1.注解實(shí)體類:默認(rèn)禁止修改此類

2.注解其他代碼段,默認(rèn)禁止修改注解的代碼段

@OrderBy??????? 指定排序

@ToMany???????? 定義與多個(gè)實(shí)體對(duì)象的關(guān)系

@ToOne? 定義與另一個(gè)實(shí)體(一個(gè)實(shí)體對(duì)象)的關(guān)系

@Unique 向數(shù)據(jù)庫(kù)列添加了一個(gè)唯一的約束

記錄完成整個(gè)greendao升級(jí)過程拜马,及學(xué)習(xí)新的使用渗勘!由于使用GreenDao畢竟時(shí)間不長(zhǎng),肯定有很多不足的地方俩莽!歡迎大神們敲磚呀邢!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市豹绪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌申眼,老刑警劉巖瞒津,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異括尸,居然都是意外死亡巷蚪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門濒翻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)屁柏,“玉大人啦膜,你說我怎么就攤上這事√视鳎” “怎么了僧家?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)裸删。 經(jīng)常有香客問我八拱,道長(zhǎng),這世上最難降的妖魔是什么涯塔? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任肌稻,我火速辦了婚禮,結(jié)果婚禮上匕荸,老公的妹妹穿的比我還像新娘爹谭。我一直安慰自己,他們只是感情好榛搔,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布诺凡。 她就那樣靜靜地躺著,像睡著了一般药薯。 火紅的嫁衣襯著肌膚如雪绑洛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天童本,我揣著相機(jī)與錄音真屯,去河邊找鬼。 笑死穷娱,一個(gè)胖子當(dāng)著我的面吹牛绑蔫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播泵额,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼配深,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了嫁盲?” 一聲冷哼從身側(cè)響起篓叶,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎羞秤,沒想到半個(gè)月后缸托,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瘾蛋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年俐镐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哺哼。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡佩抹,死狀恐怖叼风,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情棍苹,我是刑警寧澤无宿,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站廊勃,受9級(jí)特大地震影響懈贺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜坡垫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一梭灿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧冰悠,春花似錦堡妒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至桑寨,卻和暖如春伏尼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尉尾。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工爆阶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沙咏。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓辨图,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親肢藐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子故河,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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

  • GreenDao 介紹:greenDAO是一個(gè)對(duì)象關(guān)系映射(ORM)的框架,能夠提供一個(gè)接口通過操作對(duì)象的方式去操...
    小董666閱讀 736評(píng)論 0 1
  • 序言 (寫分享前的序言)大家好.很高興能為大家分享Android之GreenDao筆記,也希望能和大家一起學(xué)習(xí)進(jìn)步...
    王黎聰閱讀 1,096評(píng)論 4 11
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理吆豹,服務(wù)發(fā)現(xiàn)鱼的,斷路器,智...
    卡卡羅2017閱讀 134,711評(píng)論 18 139
  • 一痘煤、關(guān)于greenDAO greenDAO應(yīng)該算是當(dāng)前最火的數(shù)據(jù)庫(kù)開源框架了凑阶,它是一個(gè)將對(duì)象映射到SQLite數(shù)據(jù)...
    當(dāng)幸福來(lái)敲門58閱讀 13,881評(píng)論 3 19
  • 前言 我相信,在平時(shí)的開發(fā)過程中速勇,大家一定會(huì)或多或少地接觸到SQLite。然而在使用它時(shí)坎拐,我們往往需要做許多額外的...
    勤奮的pangdunhu閱讀 2,019評(píng)論 1 11