保存后获取 auto_increment 键的结果
Getting the result of an auto_increment key after a save
我正在尝试解决使用 activejdbc 时客户端断开连接的问题。因此,客户端应用程序在没有互联网时对插入和后续更新和删除进行排队。然后,当它们具有连接性时,这些批次就会通过。
为了支持这一点,客户端使用临时主键,这些主键被替换为 auto_increment 恢复连接并应用批处理时生成的密钥的结果。为此,我需要在执行 save() 或 create() 时获取生成的密钥。 activejdbc可以使用https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#getGeneratedKeys%28%29吗?
当您保存模型时,它的 ID 实际上变成了数据库返回的 auto-generated 值:
Person p = new Person();
p.set("first_name", "John", "last_name", "Doe");
p.saveIt();
System.out.println("ID of this model: " + p.getId());
但是,如果您尝试手动设置模型的 ID,则框架会假定您知道自己在做什么,并尝试在插入中使用该 ID。
我正在尝试解决使用 activejdbc 时客户端断开连接的问题。因此,客户端应用程序在没有互联网时对插入和后续更新和删除进行排队。然后,当它们具有连接性时,这些批次就会通过。
为了支持这一点,客户端使用临时主键,这些主键被替换为 auto_increment 恢复连接并应用批处理时生成的密钥的结果。为此,我需要在执行 save() 或 create() 时获取生成的密钥。 activejdbc可以使用https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#getGeneratedKeys%28%29吗?
当您保存模型时,它的 ID 实际上变成了数据库返回的 auto-generated 值:
Person p = new Person();
p.set("first_name", "John", "last_name", "Doe");
p.saveIt();
System.out.println("ID of this model: " + p.getId());
但是,如果您尝试手动设置模型的 ID,则框架会假定您知道自己在做什么,并尝试在插入中使用该 ID。