xutils3資料庫升級(markdown版)

青樓艾小生發表於2017-11-16

前言:xutils真是一款不錯的android開發框架,在使用過程中減少了程式設計師很多的程式碼量。不過其中也有一小部分需要注意的地方。其它使用請看xutils3詳細用法

1.註解注意事項

不像黃牛刀的註解,xutils的註解是在執行時(ps:我也不懂),用xutils註解點選事件發現,在頻繁的切換點選兩個button的時候,只會響應一個button的點選,用findviewbyid的方式設定onclicklitsener,就不會有這個bug。

所以我們在用到點選功能的時候,恰當的用一下註解,目前只發現頻繁點選會出現問題,不一定其它地方埋著什麼。

2.資料庫升級

當我們的業務在一天天完善的時候,之前建立的資料庫欄位可能需要做修改。我們如下配置資料庫的程式碼

    DbManager.DaoConfig daoConfig =newDbManager.DaoConfig()

    .setDbName("myapp.db")//設定資料庫名

    xutils.db.setDbDir(newFile("/mnt/sdcard/"))//設定資料庫路徑,預設儲存在app的私有目錄

    .setDbVersion(2)//設定資料庫的版本號

    .setDbOpenListener(newDbManager.DbOpenListener() {//設定資料庫開啟的監聽

        @Override
        public void onDbOpened(DbManager db) {//開啟資料庫支援多執行緒操作,提升效能,對寫入加速提升巨大
        db.getDatabase().enableWriteAheadLogging();
}
})
    .setDbUpgradeListener(newDbManager.DbUpgradeListener() {//設定資料庫更新的監聽

        @Override
        public void onUpgrade(DbManager db,intoldVersion,intnewVersion) {

}

})  .setTableCreateListener(newDbManager.TableCreateListener() {//設定表建立的監聽
        @Override
        public void onTableCreated(DbManager db, TableEntity table){
        Log.i("JAVA","onTableCreated:"+ table.getName());
}
});

我們可以在setDbVersion(x)填上任意數字,當然根據我們自己的實際情況

在需要改欄位的時候,我們可以填x+n的數字,然後在

.setDbUpgradeListener(newDbManager.DbUpgradeListener() {//設定資料庫更新的監聽

@Override 
public void onUpgrade(DbManager db,intoldVersion,intnewVersion) {

  //不需要之前的資料

  db.delete(x.class);

  //需要之前的資料

  db.addColumn(x.class,"test");//新增的欄位

  db.saveOrUpdate(db.findall());//當前表中有這條isId則更新資料,沒有則新增

}

})

感謝android,感謝開源


相關文章