在SQLite中存储ArrayLists的最佳方法

时间:2011-06-22 11:46:08

标签: android sqlite

我是Android编程的新手,但我确实有一些Java经验。

我想知道的是,在SQLite for Android中存储ArrayLists等的最佳方法是什么?在我看来,存储在表格中需要OO编程,但是我不想使用db4o,因为后来我想将我的应用程序移植到iPhone。

说到这个,你们用哪种方法?一个相当简单的例子,如果我有一个带有“Objects”的ArrayList的类“House”,我应该如何存储它们。我也不想使用序列化。

2 个答案:

答案 0 :(得分:1)

这是使用sqlite数据库存储数据的典型示例。基本上每个对象都代表表中的一行(每个基元都是一列)。您将查询表并使用游标对象遍历元素。它有点像arraylist的数据库替代品。

答案 1 :(得分:0)

您可以以Blob的形式保存ArrayList。以下是将ArrayList转换为Blob的方法。

try {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    ObjectOutputStream oos = null;
    oos = new ObjectOutputStream(bos);

    // mArrayList is the ArrayList you want to store
    oos.writeObject(mArrayList);
    byte[] buff = bos.toByteArray();

    // You can store the blob in the database
    Blob blob = new SerialBlob(buff);
} catch (Exception e){
}

现在,这只适用于ArrayList是Serializable的情况。玩得开心!