自动增量ID插入数据ORMLITE

埃姆雷·科克(Emre Koc)

我是Android新手,而ORMLITE却有问题。

例如,假设我有此表:

@DatabaseTable(tableName = "accounts")
public class Account {

    @DatabaseField(id = true)
    private int id;

    @DatabaseField(canBeNull = false)
    private String name;
    …

我想在不设置id的情况下将新数据添加到我的表中

我尝试过这种方式:

@DatabaseTable(tableName = "accounts")
public class Account {

@DatabaseField(generatedId = true,allowGeneratedIdInsert=true)
private int id;

@DatabaseField(canBeNull = false)
private String name;
…



> Account acc = new Account();
> 
> acc.setName("Example");
> 
> AccountDao.createOrupdate(acc);

在这里,我无法将acc插入到我的数据库中,因为acc id为零。我想生成ID。我可以使用自动增量吗?

灰色的

在这里我无法将acc插入到我的数据库中,因为acc id为零。我想生成ID。我可以使用自动增量吗?

因此,引用javadocs中的allowGeneratedIdInsert字段@DatabaseField

如果将其设置为true,则插入具有ID字段已设置的对象将不会使用generate-id覆盖它。当您有一个表,其中某些项有时具有ID,有时又需要生成它们时,这很有用。仅当数据库支持此行为且generatedId()该字段也为true时,此方法才有效

所以,如果你已经acc.id设置为一个非0值,应插入到数据库从ID acc如果要acc获取自动生成的ID,则应将其设置acc.id为0。

例如,您可以看一下ORMLite Android测试类搜索testCreateWithAllowGeneratedIdInsert()具有以下代码方法:

AllowGeneratedIdInsert foo = new AllowGeneratedIdInsert();
assertEquals(1, dao.create(foo));
AllowGeneratedIdInsert result = dao.queryForId(foo.id);
assertEquals(foo.id, result.id);
...

AllowGeneratedIdInsert foo3 = new AllowGeneratedIdInsert();
foo3.id = 10002;
assertEquals(1, dao.create(foo3));
result = dao.queryForId(foo3.id);
assertEquals(foo3.id, result.id);

注意:文档提到只有在数据库支持的情况下才有效,但是Sqlite是其中之一。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自动增量ID插入数据ORMLITE

来自分类Dev

在mysqli中插入ID为自动增量的数据的正确方法

来自分类Dev

在mysqli中插入ID为自动增量的数据的正确方法

来自分类Dev

MySQL:使用自动增量ID插入新数据时出错

来自分类Dev

未插入自动增量ID

来自分类Dev

插入...选择-获取并使用自动增量ID

来自分类Dev

在水壶/勺子上插入自动增量ID

来自分类Dev

在插入语句后从SQL数据库中检索自动增量ID

来自分类Dev

插入自动增量

来自分类Dev

插入自动增量

来自分类Dev

SQL插入自动增量

来自分类Dev

插入自动增量

来自分类Dev

光滑:返回插入的行,具有自动增量ID

来自分类Dev

MySQL我可以在自动增量列中插入特定ID

来自分类Dev

如何从mysql获取最近插入的自动增量ID

来自分类Dev

Rails + Postgres自动增量未在明确的ID插入上更新

来自分类Dev

没有自动密钥的SQL增量ID插入

来自分类Dev

获取自动增量ID并插入外键表中

来自分类Dev

有没有办法在mysql数据库中插入带有前缀的自动增量主ID?

来自分类Dev

Java自动增量ID

来自分类Dev

MongoDB自动增量ID

来自分类Dev

Java自动增量ID

来自分类Dev

拉动插入自动增量编号

来自分类Dev

在实体框架中导入数据后的自动增量ID

来自分类Dev

ServiceStack OrmLite-处理自动增量列默认种子

来自分类Dev

自动增量重置为0,但不能插入id = 0的值。值> 0不会发生

来自分类Dev

带有Python的MySQL无法插入具有自动增量ID的记录,为什么?

来自分类Dev

在laravel 5.2中显式插入`id`自动增量主键字段

来自分类Dev

如何在插入MYSQL之前获取下一个自动增量ID