-3

データを挿入するために PreparedStatement を使用しています。クエリによって作成されたばかりのデータの結果セットを返す executeQuery() メソッドを使用しています。しかし、準備済みステートメントの代わりにステートメントを使用する必要があるという例外が発生しています。
なんで?結果セットを取得するにはどうすればよいですか? 自動生成された最後に挿入されたレコードのIDを取得したい。
どんな助けでも大歓迎です。

4

2 に答える 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 に答える