1. SQLExceptionの概要 JDBC を使用してデータ ソース (この記事のデータ ソースは実際に使用するデータベースを表します) と対話するときにエラーが発生すると、SQLException という例外がスローされます。 SQLException には、エラーをより正確に特定するのに役立つ次の情報が含まれています。 エラーは次のことを示します: 取得するには getMessage メソッドを使用します。 SQL状態コード コードは 5 つの文字と数字で構成されます。コードのほとんどは ISO/ANSI および Open Group (X/Open) によって標準化されていますが、データベース ベンダー自身によって実装されているコードもいくつかあります。 getSQLState メソッドを使用して取得します。 エラーコード SQLState とは異なり、エラー コードはデータベース プロバイダーによって定義された整数値であり、実際のエラー コードが基になるデータ ソースによって返される可能性があります。 getErrorCode メソッドを使用して取得します。 原因 例外の原因を示します。getCause メソッドを継続的に呼び出すことで、例外の根本的な原因を取得できます。 例外チェーン 複数のエラーが発生した場合、例外はこのチェーンを通じて参照されます。 取得するには、getNextException メソッドを使用します。 2. SQLException の例 パブリック静的void printSQLException(SQLException e){ for(Throwable e :ex){ if (e インスタンスSQLException){ (SQLException を無視します ((SQLException)e).getSQLState()) == false) { e.printStackTrace(System.err); System.err.println("SQLState: " + ((SQLException)e).getSQLState()); System.err.println("エラーコード: " + ((SQLException)e).getErrorCode()); System.err.println("メッセージ: " + e.getMessage()); スロー可能 t = ex.getCause(); while(t != null){ System.out.println("原因: " + t); t = t.getCause(); } } } } } パブリック静的ブール値 ignoreSQLException(String sqlState){ if(sqlState == null){ System.out.println("SQL 状態が定義されていません"); } // X0Y32: Jar ファイルはスキーマ内に既に存在します if (sqlState.equalsIgnoreCase("X0Y32")) { true を返します。 } // 42Y55: テーブルはスキーマ内に既に存在します if(sqlState.equalsIgnoreCase("42Y55")){ true を返します。 } true を返します。 } 注: 上記のコードは [http:docs.oracle.com] (http://docs.oracle.com/javase/tutorial/jdbc/basics/sqlexception.html) から取得したものです。 3. SQL警告 SQLWarning は SQLException の非常に重要なサブクラスであり、データベース アクセス中に発生する警告を示すために使用されます。例外として、SQLWarning はアプリケーションの実行を停止するのではなく、計画どおりに何も行われていないことをユーザーに警告します。たとえば、警告では、権限を取り消す試みが失敗したことや、切断を要求中にエラーが発生した可能性があることが通知される場合があります。 SQLWarning は、Connection、Statement (PreparedStatement および CallableStatement を含む)、または ResultSet によって報告されることがあります。これらのクラスにはすべて getWarnings メソッドがあります。このメソッドを呼び出すことによってのみ、呼び出しオブジェクトで報告された最初の警告を確認できます。 getWarning が警告を返す場合は、getNextWarning メソッドを呼び出して次の警告を取得できます。文の行が実行されるたびに、前の文の行の警告がクリアされます。つまり、レポート処理から警告を取得する場合は、次の文の行が実行される前に取得する必要があります。 DataTruncation は最も一般的な警告で、SQLState コード 01004 はデータの読み取りまたは書き込み時に問題が発生したことを示します。 DataTruncation には、どの列またはパラメータ データが切り捨てられるか、切り捨てが読み取り操作または書き込み操作のどちらで行われるか、転送されるバイト数、実際に転送されるバイト数などを理解するのに役立つ多くのメソッドがあります。 4. その他の種類のSQLException BatchUpdateException: バッチ更新操作中にエラーが発生するとスローされます。提供されたメッセージに加えて、エラーが発生する前に強制終了されたすべてのステートメントが、提供された更新カウントで強制終了されます。 SQLClientInfoException: 接続時に 1 つ以上のクライアント情報プロパティを設定できない場合にスローされます。提供される情報に加えて、設定されていないクライアント情報プロパティのリストも提供されます。 すぐ... 要約する 以上が、JDBC 探索における SQLException 解析に関するこの記事の内容のすべてです。お役に立てれば幸いです。興味のある方は、引き続きこのサイトを参照してください: 共通 JDBC インターフェースの概要、JDBC を使用してデータ アクセス オブジェクト レイヤー (DAO) を実装するコード例など。ご質問がある場合は、いつでもメッセージを残すことができます。編集者が適時に返信します。どなたでも、ディスカッションのためにメッセージを残していただけます。 以下もご興味があるかもしれません:
|
<<: 純粋なJSを使用してセカンダリメニュー効果を実現します
>>: VMware12.0 インストール Ubuntu14.04 LTS チュートリアル
nginx をリバース プロキシとして使用する場合、リクエストをそのまま次のサービスに転送するだけで...
SSH ターミナル (putty、xshell など) を使用して Linux サーバーに接続し、時...
フレックス レイアウトは、エラスティック レイアウトとも呼ばれます。任意のコンテナーをフレックス レ...
1. Dockerリモート接続ポートを設定するサーバー上の docker.service ファイルを...
1: django-admin.py startproject プロジェクト名2: cd プロジェク...
1.テーブル全体を更新します。データ行の列の値が空の場合は、別の列フィールドの値と同じにします。 ...
Tomcat自体の最適化Tomcat メモリ最適化起動時に大きなメモリ ブロックが必要であることを ...
目次1. はじめに2. 初期ビュー(I) Vueの概念を理解する(II) MVVMアーキテクチャ(I...
目次導入クロージャの使用カレー作りパブリック変数の実装キャッシュカプセル化(属性のプライベート化)閉...
目次JSX環境の構築プロジェクトの設定NPMを初期化するwebpackをインストールするBabelを...
以前の開発では、クラス、名前などの HTML のデフォルト属性を使用していました。 Huawei社の...
目次1. サンプルコード2. 現象を通して本質を見抜く3. 実施原則4. 親コンポーネントのコンパイ...
拡張版です。質問とSQL文は以下の通りです。ユーザー テーブルを作成し、id、name、gender...
最初で最も重要なステップは、Windows 環境に Ngnix サービスをインストールする方法です。...
開発プロセス中に、MySQL データベースを復元した後にデータベース データに文字化けが発生した場合...