【问题标题】:Load a database to Ormlite with sql queries使用 sql 查询将数据库加载到 Ormlite
【发布时间】:2012-07-13 09:14:03
【问题描述】:

我已经编写了一堆 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)" );

最好的办法是从添加了 i 资源的文本文件中读取。

如您所见,我对此有点困惑,可以这样做吗?还应该提到我使用外键,是否支持?

【问题讨论】:

    标签: android sqlite ormlite


    【解决方案1】:

    在我看来,您需要将您的对象与您的 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 类,以便它们能够持久保存到表中——将列与字段匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多