データを挿入するために PreparedStatement を使用しています。クエリによって作成されたばかりのデータの結果セットを返す executeQuery() メソッドを使用しています。しかし、準備済みステートメントの代わりにステートメントを使用する必要があるという例外が発生しています。
なんで?結果セットを取得するにはどうすればよいですか? 自動生成された最後に挿入されたレコードのIDを取得したい。
どんな助けでも大歓迎です。
質問する
1774 次
2 に答える
0
挿入 (DML) クエリを準備しているため、その例外が発生します
自動生成されたキーを取得するには、次の Connection メソッドを使用してステートメントを作成する必要があります
PreparedStatement ps = connection.prepareStatement(myQuery,Statement.RETURN_GENERATED_KEYS );
ps.executeUpdate();
ResutSet rs = ps.getGeneratedKeys();
rs.first();
int generatedKey = rs.getInt(1);
于 2013-09-10T09:07:14.060 に答える
0
データを挿入するために PreparedStatement を使用しています。その executeQuery() を使用しています
preparedStatement
を挿入に使用している場合は、使用しないでくださいexecuteQuery()
。
使用するexecuteUpdate()
executeUpdate() は int を返すことに注意 してください。挿入されているかどうかを確認する場合は、この方法を実行します。
if(executeUpdate()>0)
{
//do some thing
}
{
else
//do somethind
}
于 2013-09-10T08:49:39.917 に答える