2011-11-20 61 views
2

我需要從表中取出大約100行並將它們放入共享prefs中,然後刪除數據庫安裝新鮮和比較值。是否可以在Android上的Shared Prefs中存儲SQLite表

我只需要存儲每行的2個值。 A欄和B欄,但我不知道這是否可能?

乾杯任何幫助。

+0

嗯...你爲什麼不復制新的或舊的(無論哪個)值添加到新的臨時表中,然後比較兩個表? – dmon

+0

因爲我正在從資產文件夾中的sqlite文件創建數據庫。我可以重新命名舊錶,但我看起來不能附加數據庫來寫入新版本,然後進行比較。至少這是我被告知,這是我建議的替代方法 – Somk

+0

任何應用程序可以有多個關聯的SQLite數據庫,所以你可能會讓你的舊數據庫和你的新數據庫共同生活在兩個不同的名稱。做比較,完成後擺脫舊的數據庫並繼續使用新的數據庫。 – JimmyB

回答

0

您不能存儲表格,但是如果您的表格真的很簡單(或者即使不是這樣,我認爲您可以存儲儘可能多的數據)它轉換成一個JSON對象,並對其進行字符串化和存儲。然後,當你準備好再次使用它時,將它打包回JSON並放到你的新表中。

0

我也可以建議使用通用的lib抽象本地存儲。 這裏有一個例子:

使用該機器人的lib:https://github.com/wareninja/generic-store-for-android

import com.wareninja.opensource.genericstore.GenericStore; 

// step.1: transfer data fromt able into GenericStore (aka cache) 
String objKey = "mytable01"; 
int storeType = GenericStore.TYPE_SHAREDPREF; 
//keep in mind that you can also use GenericStore.TYPE_MEMDISKCACHE 
// which will store on disk cache, which can be faster and better for memory allocation 

LinkedHashMap<String, Object> dataMap = new LinkedHashMap<String, Object>(); 
// fill in all the data from you table, e.g. 
dataMap.put("row1", "val1"); 

GenericStore.saveObject(storeType, objKey, dataMap, mContext); 
// now everything is on stored/cached 

// step.2: get data back 
dataMap = (LinkedHashMap<String, Object>) GenericStore.getObject(storeType, objKey, mContext); 

...
Social Coding @ Aspiro TV

相關問題