Java jackcess删除行并设置自动增量列

Java jackcess删除行并设置自动增量列,java,jackcess,Java,Jackcess,如何使用help jackcess从表中删除行? 我试过了,但不好: Table ptabl = db.getTable("person"); int pcount = ptabl.getRowCount(); for (int i = 0; i < pcount; i++) { Map<String, Object> row2 = ptabl.getNextRow(); if (row2.get("id") == Int

如何使用help jackcess从表中删除行? 我试过了,但不好:

    Table ptabl = db.getTable("person");
    int pcount = ptabl.getRowCount();
    for (int i = 0; i < pcount; i++) {
        Map<String, Object> row2 = ptabl.getNextRow();
        if (row2.get("id") == Integer.valueOf(1)) {
            ptabl.deleteCurrentRow();
        }
    }
如何将列id属性设置为自动增量

Table newTable=新的TableBuilderdiagnosis。 addColumnnew ColumnBuilderid .setSQLTypeTypes.INTEGER .toColumn .addColumnnew ColumnBuildername .setSQLTypeTypes.VARCHAR .toColumn.toTabledb;


对于“将自动增量设置为列”:

Table newTable = new TableBuilder("diagnosis").addColumn(new ColumnBuilder("id").setAutoNumber(true).setSQLType(Types.INTEGER).toColumn()).addColumn(new ColumnBuilder("name").setSQLType(Types.VARCHAR).toColumn()).toTable(db);

对于“将自动增量设置为列”:

Table newTable = new TableBuilder("diagnosis").addColumn(new ColumnBuilder("id").setAutoNumber(true).setSQLType(Types.INTEGER).toColumn()).addColumn(new ColumnBuilder("name").setSQLType(Types.VARCHAR).toColumn()).toTable(db);

如果id列已编制索引,则可以使用IndexCursor快速查找列:

IndexCursor cursor = new CursorBuilder(ptabl).setIndexByColumnNames("id").toIndexCursor();
if(cursor.findFirstRowByEntry(1)) {
  cursor.deleteCurrentRow();
}
如果您的id列没有索引,您可以使用普通光标,这比您当前的代码只扫描表更方便,但实际上并不快:

Cursor cursor = new CursorBuilder(ptab1).toCursor();
Column idCol = ptab1.getColumn("id");
if(cursor.findFirstRow(idCol, 1)) {
  cursor.deleteCurrentRow();
}

您自己的答案表明您已经知道了如何使列自动递增。

如果您的id列被索引,您可以使用IndexCursor快速查找列:

IndexCursor cursor = new CursorBuilder(ptabl).setIndexByColumnNames("id").toIndexCursor();
if(cursor.findFirstRowByEntry(1)) {
  cursor.deleteCurrentRow();
}
如果您的id列没有索引,您可以使用普通光标,这比您当前的代码只扫描表更方便,但实际上并不快:

Cursor cursor = new CursorBuilder(ptab1).toCursor();
Column idCol = ptab1.getColumn("id");
if(cursor.findFirstRow(idCol, 1)) {
  cursor.deleteCurrentRow();
}
您自己的答案表明您已经知道如何使列自动递增