8

JDBCを使用したJavaサーブレットを介して、入力されたデータを非常に単純なOracleデータベーステーブルに格納する単純なフォームを作成しています。そのテーブルは、電子メールアドレスを主キーとして使用しています。ユーザーが同じ電子メールアドレスでフォームを複数回送信すると、execute関数は失敗し、SQLExceptionをスローします。例外の文字列は次のとおりです。

java.sql.SQLException: ORA-00001: unique constraint (...removed...) violated

このシナリオでは、この例外をキャッチし、同じ電子メールアドレスでフォームを複数回送信できないことをユーザーに通知することで対処したいと思います。によってスローされる可能性のある他のSQLExceptionとは別に、異なる方法でORA-00001を処理する適切な方法は何executeですか?文字列比較は明らかにここで機能する可能性がありますが、それは不十分な解決策のようです。

4

1 に答える 1

14

DBMS を独立して使用する必要がない場合SQLException.getErrorCode()

ベンダー固有の数値エラー コードを返します。ORA-0001 の場合、これは次のようになります。1

于 2011-04-19T16:07:05.727 に答える