AndroidのSQLiteとクラス内のオブジェクト

問題は既に尋ねられましたが、私は同様の問題を見つけることができません。

私はクラスする必要があります:

public class Categorie {

// Attributs
private int identifiant;
private String libelle;

...
}

そして

public class Restaurant {

// Attributs
private int identifiant;
private String nom;
private String description;
private List lesCategories;

...
}

しかし、 SQLite では、 " lesCategories "の使い方は分かりません。

I have read this tutorial in french :

In SQLite the object type does not exist.. Only String, Integer, Real, Blob.

For be more explicite : I have a problem with my cursor it's here --> "????":
Because, it's not a String or Int but object..

public Restaurant ConvertCursorToObject(Cursor c){     レストランレストラン=新しいレストラン(     c.getInt(EnseigneOpenHelper.NUM_RES_ID)、         c.getString(EnseigneOpenHelper.NUM_RES_NOM)、         c.getString(EnseigneOpenHelper.NUM_RES_DESCRIPTion)、         ????
        );         レストランを返す; }

/ ** *レストランでカーソルを変換する * /

public Restaurant ConvertCursorToOneObject(Cursor c){     c.moveToFirst();     レストランレストラン= ConvertCursorToObject(c);     c.close();     レストランを返す; }

0
あなたはあなたの問題に特定の質問をする必要があります、あなたは何をしたいですか?
追加された 著者 Tsunaze,
列に複数の値を格納する場合は、バックエンドの別の表に分割し、外部キー参照を格納します。多値/複合属性が必要だと思います!
追加された 著者 Shashank Kadne,
あなたは何をしたいのですか?このオブジェクトからSqliteにデータを保存しますか?
追加された 著者 MysticMagicϡ,

1 答え

私は、あなたが質問しているのではないかと疑問を呈していると仮定しています。これは、これらの2つのクラスに含まれる情報をリレーショナルデータベースに保存する方法です。

BLOB以外のSQLデータベースにオブジェクトを保存することはできません。とにかく、ここでやっていることではありません。データを正規化する必要があります。

ここに必要なものは、3つのテーブルです:

  1. Categorie ;という最初の表
  2. Restaurant ;
  3. RestaurantCategorie ;という3番目の表

3番目の表には、 categorie_id restaurant_id の2つのフィールドのみが含まれます。各行には、レストランとカテゴリの有効な組み合わせが一覧表示されます。そのテーブルには、 lesCategories プロパティに対応する値が含まれます。

次に、関連するSQLの例を示します。

CREATE TABLE Categorie
( categorie_id  INTEGER PRIMARY KEY
, libelle       TEXT    NOT NULL
);

CREATE TABLE Restaurant
( restaurant_id INTEGER PRIMARY KEY
, nom           TEXT    NOT NULL
, description   TEXT
);

CREATE TABLE RestaurantCategorie
( restaurant_id INTEGER NOT NULL    REFERENCES Restaurant
, categorie_id  INTEGER NOT NULL    REFERENCES Categorie
, PRIMARY KEY (restaurant_id, categorie_id)
);

理由を理解したい場合は、リレーショナルデータベースの設計、データモデリング、特に以下のトピックについての読解を行う必要があります。データベースの正規化(特に)。

あなたがStackOverflowでこれを見つけることができなかった理由は、おそらくこれがSQLデータベースを扱うときの非常に基本的なものだからです。

3
追加された