2016-04-10 6 views
0

私は以下のコードを持っています。生成されたキーを返す要求を持つ準備済みのステートメントです。PreparedStatement.getGeneratedKeys()から返されたRowIdの使用方法?

generatedKeysの結果セットでは、唯一の戻り列の名前は "ROWID"で、値はRowIdクラスのインスタンスです。一番下のスクリーンキャプチャを参照してください。

私の質問は行IDを使用して行全体を取得する方法は?

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

enter image description here

+0

あなたは([のRowIdオブジェクトの使用] Oracleのドキュメントを見ていましたhttps://docs.oracle.com/javase/tutorial/jdbc/basics/ sqlrowid.html)? –

+1

質問に直接回答するのではなく、[this](http://stackoverflow.com/a/32114047/266304)と少し関連性がありますか? –

答えて

0

Iは、データを挿入し、rowidを得た後、私は、例の値は、DBによって挿入のために、挿入された生成された値を含む、行全体を抽出super fastlyするために使用することができ手順。

行を抽出するために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); 
関連する問題