【问题标题】:How to store custom arraylist in sqlite db and retrieve it?如何在sqlite db中存储自定义arraylist并检索它?
【发布时间】:2012-06-13 06:47:19
【问题描述】:
class A{
String str1="";
String str2="";
ArrayList<B> barr=new ArrayList<B>();

}


class B{
int a;
double d;
}


**ArrayList<A> aArr=new ArrayList<A>();**

我想将 sqlite db 中的 aArr 列表存储在一个列中并检索它。

我想我可以将它转换为 JSON 字符串。怎么做?

谁能帮帮我。

【问题讨论】:

标签: android sqlite


【解决方案1】:

如果您已经在使用Gson,或者打算使用它,那么我建议您将列表对象转换为Json 字符串,然后将其存储在Text 类型的列中SQLite。使用相同的库从 json 字符串重构您的对象也非常容易。这只是我的一个建议,因为我个人喜欢处理字符串而不是玩字节。

【讨论】:

【解决方案2】:

你可以试试这个方法。

public long insertString(String newString) 
  {
    ContentValues newStringValue = new ContentValues();

    newStringValue.put(KEY_STRING, newString);

    return db.insert(DATABASE_TABLE, null, newStringValue);
  }

【讨论】:

    【解决方案3】:

    对此没有内置函数,尤其是在仅将 arraylist 存储在 1 列中时。您可以将 A 类转换为字符串,并用特定字符分隔数据,但这不是正确的方法。

    你需要一个新的数据库系统,像这样:

    您的餐桌:

    您的专栏 |其他一些专栏 |和另一个专栏 | ArraylistA_id

    ArraylistA 表:

    ArraylistA_id |字符串1 |字符串2 | ArraylistB_id

    ArraylistB 表:

    ArraylistB_id |整数 |双重

    在这个数据库系统中,列“ArraylistA id”和“ArraylistB id”是指向另一个表中其他行的指针。因此,例如,当您的 arraylistA 存在以下情况时:

    数组列表 A{

    {"TEST", "TEST", ArrayListB{{1,1.0}, {2, 2.0}, {3, 3.0}}}

    {"HELLO", "HELLO", ArrayListB{{9,9.0}, {8, 8.0}, {7, 7.0}}}

    };

    sql 数据库中的记录如下:

    您的餐桌:

    Your Column | Some other Column | and another Column | ArraylistA_id
    
                                                               1
    

    ArraylistA 表:

    ArraylistA_id | String1 | String2 | ArraylistB_id
    
       1           TEST      TEST          1
    
       2           HELLO     HELLO         2
    

    ArraylistB 表:

    ArraylistB_id | int | double
    
      1            1      1.0
    
      1            2      2.0
    
      1            3      3.0
    
      2            9      9.0
    
      2            8      8.0
    
      2            7      7.0
    

    整个故事的重点是,您永远不应该将这样的数组列表存储在一列中,在执行此类操作之前,您需要一个适当的数据库系统。这是我在火车上的平板电脑上做的,到学校后我会清理一下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      • 2011-10-10
      • 1970-01-01
      • 2014-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多