2011-11-20 63 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

相关问题