クラス JdbcUtils
- 作成者:
- Thomas Risberg, Juergen Hoeller, Ben Blinebury
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明static void
指定された JDBC 接続を閉じ、スローされた例外を無視します。static void
指定された JDBC ResultSet を閉じて、スローされた例外を無視します。static void
closeStatement
(StatementSE stmt) 指定された JDBC ステートメントを閉じ、スローされた例外を無視します。static StringSE
commonDatabaseName
(StringSE source) さまざまなドライバー / プラットフォームが実行時にさまざまな名前を提供する場合でも、使用中のターゲットデータベースの共通名を抽出します。static StringSE
「キャメルケース」を使用して、アンダースコア付きの列名を対応するプロパティ名に変換します。static <T> T
extractDatabaseMetaData
(DataSourceSE dataSource, StringSE metaDataMethodName) 使用すべきではありません。static <T> T
extractDatabaseMetaData
(DataSourceSE dataSource, DatabaseMetaDataCallback<T> action) 指定された DatabaseMetaDataCallback を介してデータベースメタデータを抽出します。static ObjectSE
getResultSetValue
(ResultSetSE rs, int index) 最も適切な値型を使用して、ResultSet から JDBC 列値を取得します。static ObjectSE
getResultSetValue
(ResultSetSE rs, int index, ClassSE<?> requiredType) 指定された値型を使用して、ResultSet から JDBC 列値を取得します。static boolean
isNumeric
(int sqlType) 指定された SQL 型が数値かどうかを確認します。static StringSE
lookupColumnName
(ResultSetMetaDataSE resultSetMetaData, int columnIndex) 使用する列名を決定します。static StringSE
resolveTypeName
(int sqlType) 可能であれば、指定された SQL 型の標準型名を解決します。static boolean
指定された JDBC ドライバーが JDBC バッチ更新をサポートしているかどうかを返します。
フィールドの詳細
コンストラクターの詳細
JdbcUtils
public JdbcUtils()
メソッドの詳細
closeConnection
指定された JDBC 接続を閉じ、スローされた例外を無視します。これは、手動 JDBC コードの典型的な finally ブロックに役立ちます。- パラメーター:
con
- 終了する JDBC 接続 (null
の場合があります)
closeStatement
指定された JDBC ステートメントを閉じ、スローされた例外を無視します。これは、手動 JDBC コードの典型的な finally ブロックに役立ちます。- パラメーター:
stmt
- 終了する JDBC ステートメント (null
の場合があります)
closeResultSet
指定された 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
- データを保持している ResultSetindex
- 列インデックスですrequiredType
- 必要な値の型 (null
の場合があります)- 戻り値:
- 値オブジェクト (指定された必要な型ではない可能性があり、さらに変換ステップが必要)
- 例外:
SQLExceptionSE
- JDBC API によってスローされた場合- 関連事項:
getResultSetValue
最も適切な値型を使用して、ResultSet から JDBC 列値を取得します。返される値は、アクティブな ResultSet とは関係なく、分離された値オブジェクトである必要があります。特に、Blob または Clob オブジェクトではなく、それぞれバイト配列または String 表現である必要があります。getObject(index)
メソッドを使用しますが、TIMESTAMP データ型の非標準オブジェクトと時間部分を除く DATE 列のjava.sql.Date
を返す Oracle 10g を回避するための追加の「ハック」が含まれます。これらの列は、明示的に標準java.sql.Timestamp
オブジェクトとして抽出されます。- パラメーター:
rs
- データを保持している ResultSetindex
- 列インデックスです- 戻り値:
- 値オブジェクト
- 例外:
SQLExceptionSE
- JDBC API によってスローされた場合- 関連事項:
extractDatabaseMetaData
public static <T> T extractDatabaseMetaData(DataSourceSE dataSource, DatabaseMetaDataCallback<T> action) throws MetaDataAccessException 指定された DatabaseMetaDataCallback を介してデータベースメタデータを抽出します。このメソッドは、データベースへの接続を開き、そのメタデータを取得します。このメソッドは、DataSource に対して例外変換機能が構成される前に呼び出されるため、このメソッドは SQLException 変換自体に依存できません。
例外はすべて MetaDataAccessException にラップされます。これはチェック例外であり、呼び出し元のコードはこの例外をキャッチして処理する必要があります。エラーをログに記録して最善の結果を期待することもできますが、データベースに再度アクセスしようとすると再び表示されるより深刻なエラーが発生する可能性があります。
- パラメーター:
dataSource
- メタデータを抽出する DataSourceaction
- 実際の作業を行うコールバック- 戻り値:
- 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
- メタデータを抽出する DataSourcemetaDataMethodName
- 呼び出す DatabaseMetaData メソッドの名前- 戻り値:
- 指定された DatabaseMetaData メソッドによって返されたオブジェクト
- 例外:
MetaDataAccessException
- DatabaseMetaData にアクセスできなかった場合、または指定されたメソッドの呼び出しに失敗した場合- 関連事項:
supportsBatchUpdates
指定された JDBC ドライバーが JDBC バッチ更新をサポートしているかどうかを返します。通常は、特定のステートメントのセットを実行する直前に呼び出され、SQL ステートメントのセットを JDBC バッチメカニズムを通じて実行するか、単に従来の 1 つずつ方法で実行するかを決定します。
"supportsBatchUpdates" メソッドが例外をスローした場合は警告をログに記録し、その場合は単に
false
を返します。- パラメーター:
con
- 確認する接続- 戻り値:
- JDBC バッチ更新がサポートされているかどうか
- 関連事項:
commonDatabaseName
さまざまなドライバー / プラットフォームが実行時にさまざまな名前を提供する場合でも、使用中のターゲットデータベースの共通名を抽出します。- パラメーター:
source
- データベースのメタデータで提供される名前- 戻り値:
- 使用される共通名 (たとえば "DB2" または "Sybase" )
isNumeric
public static boolean isNumeric(int sqlType) 指定された SQL 型が数値かどうかを確認します。- パラメーター:
sqlType
- チェックする SQL 型- 戻り値:
- 型が数値かどうか
resolveTypeName
可能であれば、指定された SQL 型の標準型名を解決します。- パラメーター:
sqlType
- 解決する SQL 型- 戻り値:
Types
SE の対応する定数名(例: "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
- ルックアップが失敗した場合
convertUnderscoreNameToPropertyName
アンダースコアを含む列名を、「キャメルケース」を使用して対応するプロパティ名に変換します。"customer_number" のような名前は、"customerNumber" プロパティ名と一致します。- パラメーター:
name
- 変換する列名- 戻り値:
- 「キャメルケース」を使った名前
extractDatabaseMetaData(DataSource, DatabaseMetaDataCallback)
と一般的に型指定された結果を優先