我想保存我的
SQLite数据库中的ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>()
以后检索它以显示存储在其中的项目。我怎样才能做到这一点?
请提供示例。
在此先感谢:)
答案 0 :(得分:0)
您可以使用默认的标准java序列化程序或我们自己的lib来序列化它。 跟着你的性能。需求:您可以阅读此基准:https://github.com/eishay/jvm-serializers/wiki
答案 1 :(得分:0)
HashMap中是否有多条记录。如果是这样,您将保存每条记录。 有最好的方法保存到文件作为序列化对象 保存到文件:
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try {
List<Map<String, String> list=new ArrayList<HashMap<String, String>>();
fos = getContext().openFileOutput(OFFERS_FILE_NAME,
Context.MODE_PRIVATE);
oos = new ObjectOutputStream(fos);
oos.writeObject(list);
} catch (JSONException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fos != null) {
fos.flush();
fos.close();
}
if (oos != null) {
oos.flush();
oos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
从文件中读取:
List<Map<Integer, String>> orderData = null;
FileInputStream fis = null;
ObjectInputStream ois = null;
try {
fis = getContext().openFileInput(OFFERS_FILE_NAME);
ois = new ObjectInputStream(fis);
orderData = (HashMap<Integer, String>) ois.readObject();
} catch (Exception e) {
e.printStackTrace(); // We have not data in SD Card
} finally {
try {
if (fis != null)
fis.close();
if (ois != null)
ois.close();
} catch (Exception e) {
}
}
答案 2 :(得分:0)
for (int i = 0; i < yourlistname.size(); i++)
{
String sql = "INSERT or replace INTO tbl_Resources (resourceID, contentID, imgpath) "
+ "VALUES ('"
+ sitesList.get(i)
+ "', '"
+ sitesList.get(i)
+ "', '"
//
+sitesList.get(i)
+ "')";
db.execSQL(sql);
}
for (int i = 0; i < list.size(); i++) {
//insert stat like by this you will get listCountry.get(i))
}
答案 3 :(得分:-1)
如何迭代该arraylist并将其添加到数据库中??
答案 4 :(得分:-2)
请参阅上面的链接。我有一个使用HashMap进行SqLite操作的实例,使用SQliteOpenHelper。它一次只有一个插入,但如果你想在一个实例中插入它们,你可能想要创建一个循环。