クラス DataSourceUtils
java.lang.ObjectSE
org.springframework.jdbc.datasource.DataSourceUtils
DataSourceSE から JDBC Connection を取得するための静的メソッドを提供するヘルパークラス。たとえば、DataSourceTransactionManager または JtaTransactionManager によって管理される、Spring 管理のトランザクション Connection の特別なサポートが含まれます。Spring の JdbcTemplate、Spring の JDBC 操作オブジェクト、JDBC DataSourceTransactionManager によって内部的に使用されます。アプリケーションコードで直接使用することもできます。
- 作成者:
- Rod Johnson, Juergen Hoeller
- 関連事項:
フィールドのサマリー
フィールド修飾子と型フィールド説明static final intJDBC 接続をクリーンアップする TransactionSynchronization オブジェクトのオーダー値。コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明static voidapplyTimeout(StatementSE stmt, @Nullable DataSourceSE dataSource, int timeout) 指定されたタイムアウト(存在する場合は、現在のトランザクションタイムアウトによってオーバーライドされます)を、指定された JDBC ステートメントオブジェクトに適用します。static voidapplyTransactionTimeout(StatementSE stmt, @Nullable DataSourceSE dataSource) 現在のトランザクションタイムアウトがあれば、指定された JDBC ステートメントオブジェクトに適用します。static voiddoCloseConnection(ConnectionSE con, @Nullable DataSourceSE dataSource) SmartDataSourceが望まない限り、接続を閉じます。static ConnectionSEdoGetConnection(DataSourceSE dataSource) 指定された DataSource から実際に JDBC 接続を取得します。static voiddoReleaseConnection(@Nullable ConnectionSE con, @Nullable DataSourceSE dataSource) 特定の DataSource から取得した特定の接続を実際に閉じます。static ConnectionSEgetConnection(DataSourceSE dataSource) 指定された DataSource から接続を取得します。static ConnectionSE指定された接続の最も内側のターゲット接続を返します。static booleanisConnectionTransactional(ConnectionSE con, @Nullable DataSourceSE dataSource) 指定された JDBC 接続がトランザクション対応かどうか、つまり Spring のトランザクション機能によって現在のスレッドにバインドされているかどうかを判断します。prepareConnectionForTransaction(ConnectionSE con, @Nullable TransactionDefinition definition) 特定のトランザクションセマンティクスで特定の接続を準備します。static voidreleaseConnection(@Nullable ConnectionSE con, @Nullable DataSourceSE dataSource) 外部で管理されていない(つまり、スレッドにバインドされていない)場合は、指定の DataSource から取得した指定の接続を閉じます。static voidresetConnectionAfterTransaction(ConnectionSE con, @Nullable IntegerSE previousIsolationLevel) 使用すべきではありません。static voidresetConnectionAfterTransaction(ConnectionSE con, @Nullable IntegerSE previousIsolationLevel, boolean resetReadOnly) トランザクションの後で、読み取り専用フラグと分離レベルに関して、指定された接続をリセットします。
フィールドの詳細
CONNECTION_SYNCHRONIZATION_ORDER
public static final int CONNECTION_SYNCHRONIZATION_ORDERJDBC 接続をクリーンアップする TransactionSynchronization オブジェクトのオーダー値。- 関連事項:
コンストラクターの詳細
DataSourceUtils
public DataSourceUtils()
メソッドの詳細
getConnection
public static ConnectionSE getConnection(DataSourceSE dataSource) throws CannotGetJdbcConnectionException 指定された DataSource から接続を取得します。SQLException を、チェックされていない汎用データアクセス例外の Spring 階層に変換し、コードの呼び出しを簡略化し、より意味のある例外を作成します。たとえば、
DataSourceTransactionManagerを使用する場合、現在のスレッドにバインドされている対応する接続を認識します。トランザクション同期がアクティブな場合 (たとえば、JTAトランザクション内で実行している場合)、スレッドに接続をバインドします。- パラメーター:
dataSource- から接続を取得する DataSource- 戻り値:
- 指定された DataSource からの JDBC 接続
- 例外:
CannotGetJdbcConnectionException- 接続を取得する試みが失敗した場合- 関連事項:
doGetConnection
指定された DataSource から実際に JDBC 接続を取得します。getConnection(DataSource)と同じですが、元の SQLException をスローします。たとえば、
DataSourceTransactionManagerを使用する場合、現在のスレッドにバインドされている対応する接続を認識します。トランザクション同期がアクティブな場合 (たとえば、JTA トランザクションの場合)、スレッドに接続をバインドします。TransactionAwareDataSourceProxyによって直接アクセスされます。- パラメーター:
dataSource- から接続を取得する DataSource- 戻り値:
- 指定された DataSource からの JDBC 接続
- 例外:
SQLExceptionSE- JDBC メソッドによってスローされた場合- 関連事項:
prepareConnectionForTransaction
public static @Nullable IntegerSE prepareConnectionForTransaction(ConnectionSE con, @Nullable TransactionDefinition definition) throws SQLExceptionSE 特定のトランザクションセマンティクスで特定の接続を準備します。- パラメーター:
con- 準備する接続definition- 適用するトランザクション定義- 戻り値:
- 以前の分離レベル(存在する場合)
- 例外:
SQLExceptionSE- JDBC メソッドによってスローされた場合- 関連事項:
resetConnectionAfterTransaction
public static void resetConnectionAfterTransaction(ConnectionSE con, @Nullable IntegerSE previousIsolationLevel, boolean resetReadOnly) トランザクションの後で、読み取り専用フラグと分離レベルに関して、指定された接続をリセットします。- パラメーター:
con- リセットする接続previousIsolationLevel- 復元する分離レベル(存在する場合)resetReadOnly- 接続の読み取り専用フラグをリセットするかどうか- 導入:
- 5.2.1
- 関連事項:
resetConnectionAfterTransaction
@DeprecatedSE(since="5.1.11") public static void resetConnectionAfterTransaction(ConnectionSE con, @Nullable IntegerSE previousIsolationLevel) 使用すべきではありません。トランザクションの後で、読み取り専用フラグと分離レベルに関して、指定された接続をリセットします。- パラメーター:
con- リセットする接続previousIsolationLevel- 復元する分離レベル(存在する場合)
isConnectionTransactional
public static boolean isConnectionTransactional(ConnectionSE con, @Nullable DataSourceSE dataSource) 指定された JDBC 接続がトランザクション対応かどうか、つまり Spring のトランザクション機能によって現在のスレッドにバインドされているかどうかを判断します。- パラメーター:
con- 確認する接続dataSource- 接続が取得された DataSource (nullの場合があります)- 戻り値:
- 接続がトランザクションかどうか
- 関連事項:
applyTransactionTimeout
public static void applyTransactionTimeout(StatementSE stmt, @Nullable DataSourceSE dataSource) throws SQLExceptionSE 現在のトランザクションタイムアウトがあれば、指定された JDBC ステートメントオブジェクトに適用します。- パラメーター:
stmt- JDBC Statement オブジェクトdataSource- 接続が取得された DataSource- 例外:
SQLExceptionSE- JDBC メソッドによってスローされた場合- 関連事項:
applyTimeout
public static void applyTimeout(StatementSE stmt, @Nullable DataSourceSE dataSource, int timeout) throws SQLExceptionSE 指定されたタイムアウト(存在する場合は、現在のトランザクションタイムアウトによってオーバーライドされます)を、指定された JDBC ステートメントオブジェクトに適用します。- パラメーター:
stmt- JDBC Statement オブジェクトdataSource- 接続が取得された DataSourcetimeout- 適用するタイムアウト (または、トランザクションの外部でタイムアウトがない場合は 0)- 例外:
SQLExceptionSE- JDBC メソッドによってスローされた場合- 関連事項:
releaseConnection
外部で管理されていない(つまり、スレッドにバインドされていない)場合は、指定の DataSource から取得した指定の接続を閉じます。- パラメーター:
con- 必要に応じて閉じる接続 (これがnullの場合、呼び出しは無視されます)dataSource- 接続が取得された DataSource (nullの場合があります)- 関連事項:
doReleaseConnection
public static void doReleaseConnection(@Nullable ConnectionSE con, @Nullable DataSourceSE dataSource) throws SQLExceptionSE 特定の DataSource から取得した特定の接続を実際に閉じます。releaseConnection(Connection, DataSource)と同じですが、元の SQLException をスローします。TransactionAwareDataSourceProxyによって直接アクセスされます。- パラメーター:
con- 必要に応じて閉じる接続 (これがnullの場合、呼び出しは無視されます)dataSource- 接続が取得された DataSource (nullの場合があります)- 例外:
SQLExceptionSE- JDBC メソッドによってスローされた場合- 関連事項:
doCloseConnection
public static void doCloseConnection(ConnectionSE con, @Nullable DataSourceSE dataSource) throws SQLExceptionSE SmartDataSourceが望まない限り、接続を閉じます。- パラメーター:
con- 必要に応じて閉じる接続dataSource- 接続が取得された DataSource- 例外:
SQLExceptionSE- JDBC メソッドによってスローされた場合- 関連事項:
getTargetConnection
指定された接続の最も内側のターゲット接続を返します。指定された接続がプロキシの場合、非プロキシ接続が見つかるまでラップが解除されます。それ以外の場合、渡された接続はそのまま返されます。- パラメーター:
con- アンラップする接続プロキシ- 戻り値:
- 最も内側のターゲット接続、またはプロキシがない場合は渡された接続
- 関連事項:
resetConnectionAfterTransaction(Connection, Integer, boolean)を推奨