2016-03-23 12 views
1

コネクタmysql-connector-java-5.1.6-bin.jarを使用してMySql DBのレコードのバッチを更新しようとしています。このanswerによれば、ドライバは1つのレコードに障害が発生しても処理を続行するか、例外をスローする可能性があります。javaコードを通じてcontinueOnErrorプロパティをtrueに設定します

JDBCドライバは、1つのステートメントが失敗した場合、またはステートメントが失敗した場合にバッチ内のステートメントの実行を停止することを選択する可能性があります。

コネクタジャーのdocumentationによると、continueOnErrorがデフォルトでtrueです。

continueBatchOnError

1文が失敗した場合、ドライバはバッチコマンドの処理を継続する必要があります。 JDBC仕様ではどちらの方法も許可します(デフォルトは 'true')。

デフォルト:バージョン以来真

:3.0.3

私はいくつかのビジネスロジックに従って、このプロパティの値を変更したいです。では、私の実装(Javaコード内)でこのプロパティをtrueまたはfalseに設定するにはどうすればよいですか。

注:接続パラメータを変更することはできません。私はちょうどconnectionオブジェクトを取得し、バッチ更新を実行します。

答えて

1

接続がcom.mysql.jdbc.JDBC4Connectionある場合は、continueBatchOnErrorフラグを設定することができます:エルス

JDBC4Connection mysqlCon = (JDBC4Connection)con; 
boolean current = mysqlCon.getContinueBatchOnError(); 
mysqlCon.setContinueBatchOnError(false); 

(接続が接続プールの実装によってラップされている場合など)、あなたが JDBC4Connectionを取得するために Connection.unwrapを使用することができます。

関連する問題