从Java ResultSet获取java.sql.RowId

时间:2013-11-18 20:14:45

标签: java oracle plsql rowid

事实证明这比我预期的要困难得多。我正在尝试从java.sql.RowId对象获取一行的Oracle rowid(ResultSet)。

RowId rowid = rs.getRowId("rowid");

这个失败了,不喜欢输入字符串“rowid”。

Integer columnIndex = 2;
RowId rowid = rs.getRowId(columnIndex);

这会失败,因为它不喜欢列索引的整数值。

那么我为rumum或rowid这样的元数据传递哪个列索引?

如果我是设计师,我会让rowid的columnindex为0,-1,或-2,或-3,或者其他什么,但那就是我。

1 个答案:

答案 0 :(得分:2)

看起来您需要在查询中选择rowid作为列,然后使用getRowId()方法访问列(按名称或索引)。

例如。

    select
        rowid,
        blammy
    from
        tablename
    where
        something = desiredvalue

然后

    RowId rowid = rs.getRowId("rowid");

    RowId rowid = rs.getRowId(1);