问题描述
我尝试使用Jackcess来获取最后添加的行的ID。 在Java或VBA中,我可以使用SELECT @@ Identity。 在Jackess java中打印mi此信息:
Column c = table.getPrimaryKeyIndex().getColumns().get(0).getColumn();
System.out.println(c);
我得到以下信息:
Column@3b398b29[
name: (RatingGeneral) ID
type: 0x4 (LONG)
number: 0
length: 4
variableLength: false
lastAutoNumber: 155
]
但是我不知道如何将“ lastAutoNumber”转换为Integer,String或任何使用变量。 Jackess Doc和Google没有帮助。
1楼
addRow的Jackcess文档说:
请注意,如果该表具有自动编号列,则生成的值将放回到给定的行数组中(假设给定的行数组至少与该表中的列数一样长)。
所以,
// table has two columns: id (AutoNumber), and lastname (Text(100))
Table tbl = db.getTable("customer");
Object[] newRow = new Object[] {Column.AUTO_NUMBER, "Thompson" };
tbl.addRow(newRow);
int newId = (int) newRow[0];
System.out.printf("New row was assigned AutoNumber value %d%n", newId);
参考: