gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 03:49:50 25 4
gpt4 key购买 nike

  1. 如何在 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();
    }
    }
  2. 如何将列“id”属性设置为自增?

    表 newTable = new TableBuilder("诊断")。
    addColumn(新的 ColumnBuilder("id")
    .setSQLType(Types.INTEGER)
    .toColumn())
    .addColumn(新的 ColumnBuilder("名称")
    .setSQLType(Types.VARCHAR)
    .toColumn()).toTable(数据库);

最佳答案

如果您的 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();
}

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

关于java - jackcess 删除行并设置自动增量列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9343470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com