是否可以在Android上的Shared Prefs中存储SQLite表

时间:2011-11-20 17:30:48

标签: java android sqlite

我需要从表中获取大约100行并将它们放入共享的首选项中,然后删除数据库安装一个新的和比较值。

我只需要存储每行的2个值。 A栏和B栏,但我不知道这是否可能?

欢呼任何帮助。

2 个答案:

答案 0 :(得分:0)

你不能存储一张桌子,但如果你的桌子真的那么简单(或者即使它不是......我认为你可以存储尽可能多的数据,真的),您可以将其转移到JSON对象,进行字符串化并存储。然后将它打包回JSON,并在您准备再次使用时将其打包到新表中。

答案 1 :(得分:0)

我还可以建议使用通用的lib来抽象本地存储。 这里有一个例子:

使用此android 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