1

我需要在我的 Android 应用程序上预填充一个 SQLite 数据库。

我的想法是将文件放入资产文件夹。该文件的每一行都包含一个 sql 命令,例如

INSERT INTO Books(id, name) VALUES(16, 'Book X'); 

应用程序将逐行读取并使用原始查询将数据插入数据库。

问题是 id 列具有自动生成的 id。我认为这会与使用任意 id 产生冲突。

有人知道如何使用解决这个问题吗?

4

3 回答 3

3

带注解的字段@DatabaseField必须有allowGeneratedIdInsert=true.

为避免异常,如果具有 id 的对象已经存在,则createOrUpdate必须使用方法而不是 create。

编辑:createOrUpdate非常耗时。最好只使用大量数据创建。

于 2013-09-11T21:49:41.077 回答
0

您可以使用以下 (generatedId = true) 使用数据库生成自动增量整数 id。

@DatabaseTable(tableName = "todo")
public class Todo {

public Todo() {

    }

   @DatabaseField(generatedId = true)
    private Integer id;


   public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

}
于 2017-03-28T11:19:03.637 回答
0

这对我有用:

 @DatabaseField(columnName = sqlId, generatedId = true, allowGeneratedIdInsert = true)

并且没有其他列可以有 id=true

于 2017-03-22T00:32:19.317 回答