我有以下代码。这是一个准备好的语句,请求返回生成的密钥。
在generatedKeys结果集中,唯一的返回列名为“ROWID”,value是RowId
类的实例。请参见底部的screencap。
我的问题是如何使用行ID获取整行?
preparedStatement = conn.prepareStatement(insert, Statement.RETURN_GENERATED_KEYS);
SqlUtils.addParams(preparedStatement, params);
preparedStatement.executeUpdate();
ResultSet generatedKeys = preparedStatement.getGeneratedKeys();
答案 0 :(得分:0)
插入数据并获得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);