0

私はすでにたくさんのSQL作成テーブルクエリとインジェクションを書いています。Ormliteを使用してこれらをAndroidアプリにロードするにはどうすればよいですか?私が理解していることから、データベースは例で次のように作成されます。

        @DatabaseField(generatedId = true)
        private Integer id;

        @DatabaseField
        private String description;
...
    TableUtils.createTable(connectionSource, Thing.class);

私はこれをexで逆に自動的にやりたいと思います:

CREATE TABLE "History" ("_id" INTEGER PRIMARY KEY  NOT NULL , "date" DATETIME, "program_id" INTEGER, "FOREIGN KEY(program_id) REFERENCES Program (_id)" );

最良の方法は、リソースに追加されたテキストファイルから読み取ることです。

イムがこれについて少し混乱しているのを見ることができるように、このようなことをすることができますか?また、Imが外部キーを使用していることにも言及する必要がありますが、サポートされていますか?

4

1 に答える 1

0

オブジェクトを create ステートメントに一致させる必要があるように思えます。たとえば、次の create ステートメントを実行する場合:

CREATE TABLE "History" ("_id" INTEGER PRIMARY KEY  NOT NULL ,
    "date" DATETIME, "program_id" INTEGER,
    "FOREIGN KEY(program_id) REFERENCES Program (_id)" );

次に、それに対応する次の Java を構築する必要があります。

 public class History {
      // maybe generatedId = true
      @DatabaseField(columnName = "_id", nullable = false, id = true)
      public int id;
      @DatabaseField(/* not sure if you need to set a date type here */
      public Date date;
      @DatabaseField(foreign = true, columnName = "program_id")
      public Program program;
 }

 public class Program {
      // maybe generatedId = true
      @DatabaseField(columnName = "_id", nullable = false, id = true)
      public int id;
      ...
 }

独自の作成を行ってから、対応する Java クラスを微調整して、テーブルに永続化できるようにすることができます (列とフィールドを一致させます)。

于 2012-07-16T14:30:38.730 に答える