最近公司需要新專案,需要資料持久化 ,使用的是fmdb操作sqlite,在正常使用過程中沒有什麼毛病的,但是如果一旦需求改了 需要增加欄位的時候就必須要重新寫 或者使用者重新解除安裝安裝,這就會造成使用者資料丟失。剛開始預定方案是判斷版本號之後,對於原先資料庫裡面的資料讀出來然後新增欄位的資料進行寫入。這樣就會儲存原先的資料。最近在找這方面的資料,發現了這個東西:
pod
'fmdbmigrationmanager'
很好用的東西。
簡單使用:
自定義migration:
.h檔案:
.m實現:
然後只需要在每次建立表的時候使用這個封裝好的類就行了,至於但是這麼寫有個bug就是原先的資料路裡面的字段是沒有薪字段的資訊的 這個時候如果需要預設設定的話只需要在讀取資料庫的時候設定成你想要的字段資訊就行了 或者 預留乙個更新的藉口查詢這列資料的這個字段 然後更新這列資料就行了 ,看你的需求:我的是沒必要更新資料的資訊 只需要預設資訊就行 那麼我只是在讀取資料庫的時候設定了預設字段:
migration的具體使用:只需要在快取工具單例初始化的時候呼叫這個方法就行了,
同樣的增刪改查的方法是不變的 (不過因為新增字段 所以 api沒有變至於邏輯需要自重新設計滿足自己的需求。),最後因為fmdbmigrationmanager是和fmdb在一起使用的 所以別忘了
pod
'fmdb'。
資料庫增加新列
2017年02月14日 11 24 11 public class copyofdatabasehelper extends sqliteopenhelper return db helper public copyofdatabasehelper context context 資料庫建立時執行 ...
FMDB資料庫總結
這是本人自己整理的fmdb,如有問題請見諒並指出,謝謝!要用fmdb快取,首先要熟練使用sqlite指令,可以參考我的部落格文 下面是我寫的乙個小demo fmdb資料庫最常用的就是增刪改查,下面的demo主要是快取了從網上請求下來的一些和其對應的標題。可以滿足在斷網或再次執行應用的情況下介面有資料...
FMDB資料庫(二)
初識fmdb ios中原生的sqlite api在進行資料儲存的時候,需要使用c語言中的函式,操作比較麻煩。於是,就出現了一系列將sqlite api進行封裝的庫,例如fmdb plausibledatabase sqlitepersistentobjects等。fmdb是一款簡潔 易用的封裝庫。因...