4

mysqlでJDBCを使用しています。クエリをうまく機能させることができます。しかし、たとえば更新クエリの場合、たとえば行が見つからなかった場合など、更新が成功したかどうかを判断する方法があるかどうか疑問に思いました。

UPDATE TABLE SET  column =  'newvalue' WHERE  primary_key =2

可能であれば特定のエラーメッセージを取得したいのですが、こうすることで、クエリが失敗した理由について特定の例外をスローできます。

ご協力いただきありがとうございます。

4

2 に答える 2

10

executeUpdate() は、SQL ステートメントの影響を受けた行数を返します。

int rows = stmt.executeUpdate("UPDATE ...");
System.out.println(rows + " rows updated");

もちろん、JavaDocs を見るだけで自分自身を見つけることができたはずです。

戻り値: (1) SQL データ操作言語 (DML) ステートメントの行数、または (2) 何も返さない SQL ステートメントの場合は 0

于 2012-11-17T21:05:30.720 に答える
2

executeUpdateは、影響を受けた行の行数を返します。これを使用して、更新が正常に実行されたことを確認できます。

PreparedStatement pstmt = con.prepareStatement("UPDATE TABLE ...");
int rowsUpdated = pstmt.executeUpdate(); 
if (rowsUpdated == 0) {
   // handle no update
}
于 2012-11-17T21:05:35.487 に答える