クラス JdbcUtils

java.lang.ObjectSE
org.springframework.jdbc.support.JdbcUtils

public abstract class JdbcUtils extends ObjectSE
JDBC を操作するための汎用ユーティリティメソッド。主にフレームワーク内での内部使用に使用しますが、カスタム JDBC アクセスコードにも役立ちます。
作成者:
Thomas Risberg, Juergen Hoeller, Ben Blinebury
  • フィールドの詳細

  • コンストラクターの詳細

    • JdbcUtils

      public JdbcUtils()
  • メソッドの詳細

    • closeConnection

      public static void closeConnection(@Nullable ConnectionSE con)
      指定された JDBC 接続を閉じ、スローされた例外を無視します。これは、手動 JDBC コードの典型的な finally ブロックに役立ちます。
      パラメーター:
      con - 終了する JDBC 接続 (null の場合があります)
    • closeStatement

      public static void closeStatement(@Nullable StatementSE stmt)
      指定された JDBC ステートメントを閉じ、スローされた例外を無視します。これは、手動 JDBC コードの典型的な finally ブロックに役立ちます。
      パラメーター:
      stmt - 終了する JDBC ステートメント (null の場合があります)
    • closeResultSet

      public static void closeResultSet(@Nullable ResultSetSE rs)
      指定された JDBC ResultSet を閉じて、スローされた例外を無視します。これは、手動 JDBC コードの典型的な finally ブロックに役立ちます。
      パラメーター:
      rs - JDBC ResultSet を閉じます (null の場合があります)
    • getResultSetValue

      @Nullable public static ObjectSE getResultSetValue(ResultSetSE rs, int index, @Nullable ClassSE<?> requiredType) throws SQLExceptionSE
      指定された値型を使用して、ResultSet から JDBC 列値を取得します。

      特別に型指定された ResultSet アクセサーメソッドを使用し、不明な型については getResultSetValue(java.sql.ResultSet, int) にフォールバックします。

      不明な型の場合、戻り値は指定された必須型に割り当てられない場合があることに注意してください。呼び出しコードは、このケースに適切に対処する必要があります。対応する例外をスローします。

      パラメーター:
      rs - データを保持している ResultSet
      index - 列インデックスです
      requiredType - 必要な値の型 (null の場合があります)
      戻り値:
      値オブジェクト (指定された必要な型ではない可能性があり、さらに変換ステップが必要)
      例外:
      SQLExceptionSE - JDBC API によってスローされた場合
      関連事項:
    • getResultSetValue

      @Nullable public static ObjectSE getResultSetValue(ResultSetSE rs, int index) throws SQLExceptionSE
      最も適切な値型を使用して、ResultSet から JDBC 列値を取得します。返される値は、アクティブな ResultSet とは関係なく、分離された値オブジェクトである必要があります。特に、Blob または Clob オブジェクトではなく、それぞれバイト配列または String 表現である必要があります。

      getObject(index) メソッドを使用しますが、TIMESTAMP データ型の非標準オブジェクトと時間部分を除く DATE 列の java.sql.Date を返す Oracle 10g を回避するための追加の「ハック」が含まれます。これらの列は、明示的に標準 java.sql.Timestamp オブジェクトとして抽出されます。

      パラメーター:
      rs - データを保持している ResultSet
      index - 列インデックスです
      戻り値:
      値オブジェクト
      例外:
      SQLExceptionSE - JDBC API によってスローされた場合
      関連事項:
    • extractDatabaseMetaData

      public static <T> T extractDatabaseMetaData(DataSourceSE dataSource, DatabaseMetaDataCallback<T> action) throws MetaDataAccessException
      指定された DatabaseMetaDataCallback を介してデータベースメタデータを抽出します。

      このメソッドは、データベースへの接続を開き、そのメタデータを取得します。このメソッドは、DataSource に対して例外変換機能が構成される前に呼び出されるため、このメソッドは SQLException 変換自体に依存できません。

      例外はすべて MetaDataAccessException にラップされます。これはチェック例外であり、呼び出し元のコードはこの例外をキャッチして処理する必要があります。エラーをログに記録して最善の結果を期待することもできますが、データベースに再度アクセスしようとすると再び表示されるより深刻なエラーが発生する可能性があります。

      パラメーター:
      dataSource - メタデータを抽出する DataSource
      action - 実際の作業を行うコールバック
      戻り値:
      DatabaseMetaDataCallback の processMetaData メソッドによって返される、抽出された情報を含むオブジェクト
      例外:
      MetaDataAccessException - メタデータアクセスに失敗した場合
      関連事項:
    • extractDatabaseMetaData

      @DeprecatedSE public static <T> T extractDatabaseMetaData(DataSourceSE dataSource, StringSE metaDataMethodName) throws MetaDataAccessException
      使用すべきではありません。
      5.2.9 以降、ラムダ式またはメソッド参照を使用した extractDatabaseMetaData(DataSource, DatabaseMetaDataCallback) と一般的に型指定された結果を優先
      指定された DataSource の DatabaseMetaData で指定されたメソッドを呼び出し、呼び出し結果を抽出します。
      パラメーター:
      dataSource - メタデータを抽出する DataSource
      metaDataMethodName - 呼び出す DatabaseMetaData メソッドの名前
      戻り値:
      指定された DatabaseMetaData メソッドによって返されたオブジェクト
      例外:
      MetaDataAccessException - DatabaseMetaData にアクセスできなかった場合、または指定されたメソッドの呼び出しに失敗した場合
      関連事項:
    • supportsBatchUpdates

      public static boolean supportsBatchUpdates(ConnectionSE con)
      指定された JDBC ドライバーが JDBC バッチ更新をサポートしているかどうかを返します。

      通常は、特定のステートメントのセットを実行する直前に呼び出され、SQL ステートメントのセットを JDBC バッチメカニズムを通じて実行するか、単に従来の 1 つずつ方法で実行するかを決定します。

      "supportsBatchUpdates" メソッドが例外をスローし、その場合は単に false を返す場合、警告をログに記録します。

      パラメーター:
      con - 確認する接続
      戻り値:
      JDBC バッチ更新がサポートされているかどうか
      関連事項:
    • commonDatabaseName

      @Nullable public static StringSE commonDatabaseName(@Nullable StringSE source)
      さまざまなドライバー / プラットフォームが実行時にさまざまな名前を提供する場合でも、使用中のターゲットデータベースの共通名を抽出します。
      パラメーター:
      source - データベースのメタデータで提供される名前
      戻り値:
      使用される共通名 (たとえば "DB2" または "Sybase" )
    • isNumeric

      public static boolean isNumeric(int sqlType)
      指定された SQL 型が数値かどうかを確認します。
      パラメーター:
      sqlType - チェックする SQL 型
      戻り値:
      型が数値かどうか
    • resolveTypeName

      @Nullable public static StringSE resolveTypeName(int sqlType)
      可能であれば、指定された SQL 型の標準型名を解決します。
      パラメーター:
      sqlType - 解決する SQL 型
      戻り値:
      TypesSE の対応する定数名(例: "VARCHAR "/"NUMERIC" )、または解決できない場合は null 
      導入:
      5.2
    • lookupColumnName

      public static StringSE lookupColumnName(ResultSetMetaDataSE resultSetMetaData, int columnIndex) throws SQLExceptionSE
      使用する列名を決定します。列名は、ResultSetMetaData を使用したルックアップに基づいて決定されます。

      このメソッドの実装では、JDBC 4.0 仕様で表現されている明確化が考慮されています。

      columnLabel-SQL AS 句で指定された列のラベル。SQL AS 句が指定されていない場合、ラベルは列の名前になります

      パラメーター:
      resultSetMetaData - 使用する現在のメタデータ
      columnIndex - ルックアップ用の列のインデックス
      戻り値:
      使用する列名
      例外:
      SQLExceptionSE - ルックアップが失敗した場合
    • convertPropertyNameToUnderscoreName

      public static StringSE convertPropertyNameToUnderscoreName(@Nullable StringSE name)
      "camelCase" を使用したプロパティ名を、アンダースコアを含む対応する列名に変換します。"customerNumber" のような名前は、"customer_number" 列名と一致します。
      パラメーター:
      name - 変換するプロパティ名
      戻り値:
      アンダースコアを使用した列名
      導入:
      6.1
      関連事項:
    • convertUnderscoreNameToPropertyName

      public static StringSE convertUnderscoreNameToPropertyName(@Nullable StringSE name)
      "camelCase" を使用して、アンダースコアを含む列名を対応するプロパティ名に変換します。"customer_number" のような名前は、"customerNumber" プロパティ名と一致します。
      パラメーター:
      name - 変換される可能性のあるアンダースコアベースの列名
      戻り値:
      「キャメルケース」を使用した名前
      関連事項: