class A{
String str1="";
String str2="";
ArrayList<B> barr=new ArrayList<B>();
}
class B{
int a;
double d;
}
**ArrayList<A> aArr=new ArrayList<A>();**
aArr リストを sqlite db の列に格納して取得したいと考えています。
JSON文字列に変換できると思います。どうやってするの?
誰でも私を助けてください。
すでにGsonを使用している場合、または使用を計画している場合は、リストオブジェクトをJson文字列Text
に変換してから、SQLiteの型列に格納することをお勧めします。また、同じライブラリを使用してjson文字列からオブジェクトを再構築するのも非常に簡単です。私は個人的にバイトで遊ぶよりも文字列を扱うのが好きなので、それは私からの単なる提案です。
この方法を試すことができます。
public long insertString(String newString)
{
ContentValues newStringValue = new ContentValues();
newStringValue.put(KEY_STRING, newString);
return db.insert(DATABASE_TABLE, null, newStringValue);
}
特に配列リストを1列だけに格納する場合は、それに対する組み込み関数はありません。クラス A を文字列に変換し、データを特定の文字で区切ることはできますが、それは正しい方法ではありません。
次のような新しいデータベース システムが必要です。
あなたのテーブル:
あなたのコラム | その他のコラム | と別の列 | ArraylistA_id
ArraylistA テーブル:
ArraylistA_id | 文字列 1 | 文字列 2 | ArraylistB_id
ArraylistB テーブル:
ArraylistB_id | 整数 | ダブル
このデータベース システムでは、列「ArraylistA id」と「ArraylistB id」は、別のテーブルの他の行へのポインタです。たとえば、arraylistA が次の範囲外に存在する場合:
配列リスト A{
{"テスト", "テスト", ArrayListB{{1,1.0}, {2, 2.0}, {3, 3.0}}}
{"こんにちは", "こんにちは", 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
完全な話の要点は、このような配列リストを 1 つの列だけに格納してはならないということです。このようなことを行う前に、適切なデータベース システムが必要です。電車の中でタブレットで作ったので、学校に着いたら少し片付けます。