GreenDao版本升級

最近項目中用到了GreenDao,碰到了版本升級的問題。自己寫數(shù)據(jù)庫的時候都是自定義的helper,用GreenDao我們會發(fā)現(xiàn)在自動生成的DaoMaster中有一個內(nèi)部類DevOpenHelper,GreenDao的版本升級就是在這里的onUpgrade()方法中進行的。

如果需要進行版本升級,第一步修改DaoMaster中的SCHEMA_VERSION字段,這個字段代表的事數(shù)據(jù)庫的版本號。

一般版本升級都是往表中添加個字段,這時我們需要注釋掉onUpgrade()中的 ? ? ? ?dropAllTables(db, true)方法和 onCreate(db)方法,然后對version進行對比是否進行版本升級,測試代碼如下:

if (oldVersion!=newVersion) {

db.execSQL("ALTER TABLE TEST ADD \"NAME\" TEXT");

}

那如果想往數(shù)據(jù)庫中添加一個新表該怎么操作呢,查看DaoMaster代碼會發(fā)現(xiàn)有一個

createAllTables(SQLiteDatabase db, boolean ifNotExists)方法,標的創(chuàng)建都是在這個方法中進行的。比如我的完整方法代碼如下:

/**

* Creates underlying database table using DAOs.

*/

public static voidcreateAllTables(SQLiteDatabase db, boolean ifNotExists) {

UserInfoDao.createTable(db,ifNotExists);

DiscountInfoDao.createTable(db,ifNotExists);

PoiAddEntityDao.createTable(db,ifNotExists);

TestDao.createTable(db,ifNotExists);

}

如果我想網(wǎng)數(shù)據(jù)庫中添加一個test表,則在onUpgrade中執(zhí)行建表語句即可,完整代碼如下:

@Override

public voidonUpgrade(SQLiteDatabase db, intoldVersion, intnewVersion) {

Log.i("greenDAO","Upgrading schema from version "+ oldVersion +" to "+ newVersion +" by dropping all tables");

//? ? ? ? ? ? dropAllTables(db, true);

//? ? ? ? ? ? onCreate(db);

if(newVersion != oldVersion) {

TestDao.createTable(db, true);

}

}

TestDao.createTable第二個參數(shù)傳true表示沒有表則創(chuàng)建。

以上就可以對GreenDao數(shù)據(jù)庫進行升級,同時也不用刪除之前的數(shù)據(jù),

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • 一、關于greenDAO greenDAO應該算是當前最火的數(shù)據(jù)庫開源框架了,它是一個將對象映射到SQLite數(shù)據(jù)...
    當幸福來敲門58閱讀 13,905評論 3 19
  • 序言 (寫分享前的序言)大家好.很高興能為大家分享Android之GreenDao筆記,也希望能和大家一起學習進步...
    王黎聰閱讀 1,106評論 4 11
  • GreenDao 介紹:greenDAO是一個對象關系映射(ORM)的框架,能夠提供一個接口通過操作對象的方式去操...
    小董666閱讀 746評論 0 1
  • (一)GreenDao簡介 GreenDao是一個對象關系映射(ORM)的開源框架,目前最主流的安卓數(shù)據(jù)庫操作框架...
    miss2008閱讀 5,293評論 4 18
  • 習慣人群中找你的影子 回想那些幸福的日子 但其實我明白 我和從前的我 已經(jīng)分開很遠很遠 寂寞世界中的兩顆心 寂寞城...
    騷之哈塞給閱讀 239評論 0 1