有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用从PreparedStatement返回的RowId。getGeneratedKeys()?

我有下面的代码。它是一个准备好的语句,请求返回生成的密钥

在generatedKeys结果集中,唯一的返回列名为“ROWID”,value是RowId类的一个实例。请参见底部的屏幕盖

我的问题是如何使用行id获取整行

preparedStatement = conn.prepareStatement(insert, Statement.RETURN_GENERATED_KEYS);
SqlUtils.addParams(preparedStatement, params);
preparedStatement.executeUpdate();
ResultSet generatedKeys = preparedStatement.getGeneratedKeys();

enter image description here


共 (1) 个答案

  1. # 1 楼答案

    一旦我插入数据并得到rowid,我就可以用它来super fastly提取整行,包括插入的生成值,例如由DB过程插入的值

    使用rowid提取行的示例:

    Object rowId = generatedKeys.getObject(1);
    String tableName = generatedKeys.getMetaData().getTableName(1);
    List<Map<String, Object>> resAsList = select(conn, "select * from " + tableName + " where rowid=?", rowId);