クラス SingleConnectionDataSource
java.lang.ObjectSE
org.springframework.jdbc.datasource.AbstractDataSource
org.springframework.jdbc.datasource.AbstractDriverBasedDataSource
org.springframework.jdbc.datasource.DriverManagerDataSource
org.springframework.jdbc.datasource.SingleConnectionDataSource
- 実装されたすべてのインターフェース:
AutoCloseableSE
、WrapperSE
、CommonDataSourceSE
、DataSourceSE
、DisposableBean
、SmartDataSource
public class SingleConnectionDataSource
extends DriverManagerDataSource
implements SmartDataSource, AutoCloseableSE, DisposableBean
使用後に閉じられない単一の JDBC 接続をラップする
SmartDataSource
の実装。明らかに、これはマルチスレッド対応ではありません。 シャットダウン時に、誰かが close()
メソッドを介して基礎となる接続を閉じる必要があることに注意してください。SmartDataSource に対応している(たとえば DataSourceUtils.releaseConnection
を使用している)場合、クライアントコードは接続ハンドルで close を呼び出しません。
永続化ツールを使用する場合など、クライアントコードがプールされた接続を想定して close()
を呼び出す場合は、"suppressClose" を "true" に設定します。これにより、物理的な接続ではなく、クローズ抑制プロキシが返されます。
これは主にテスト用です。例: DataSource で動作することを期待するコードについて、アプリケーションサーバーの外で簡単にテストできます。DriverManagerDataSource
とは対照的に、常に同じ接続を再利用し、物理接続の過剰な作成を回避します。
- 作成者:
- Rod Johnson, Juergen Hoeller
- 関連事項:
フィールドサマリー
クラス org.springframework.jdbc.datasource.AbstractDataSource から継承されたフィールド
logger
コンストラクターのサマリー
コンストラクター説明Bean スタイルの構成のコンストラクター。SingleConnectionDataSource
(StringSE url, boolean suppressClose) 指定された標準 DriverManager パラメーターで新しい SingleConnectionDataSource を作成します。SingleConnectionDataSource
(StringSE url, StringSE username, StringSE password, boolean suppressClose) 指定された標準 DriverManager パラメーターで新しい SingleConnectionDataSource を作成します。SingleConnectionDataSource
(ConnectionSE target, boolean suppressClose) 指定された接続で新しい SingleConnectionDataSource を作成します。メソッドのサマリー
修飾子と型メソッド説明void
close()
基になる接続を閉じます。protected void
基礎となる共有接続を閉じます。void
destroy()
基になる接続を閉じます。protected BooleanSE
返された接続の "autoCommit" 設定を上書きする必要があるかどうかを返します。protected ConnectionSE
すべてのメソッド呼び出しを委譲するプロキシを使用して、指定された接続をラップしますが、クローズ呼び出しを抑制します。この実装は、この DataSource のデフォルトのユーザー名とパスワードを使用してgetConnectionFromDriver
に委譲します。getConnection
(StringSE username, StringSE password) カスタムのユーザー名とパスワードを指定しても、単一の接続では意味がありません。void
DriverManager を介して基になる接続を初期化します。protected boolean
共有接続を閉じる前に明示的にロールバックする必要があるかどうかを返します (自動コミットモードでない場合)。protected boolean
返された接続がクローズ抑制プロキシか物理接続かを返します。protected void
公開する前に、所定の接続を準備します。void
基礎となる共有接続をリセットして、次のアクセスで再初期化します。void
setAutoCommit
(boolean autoCommit) 返された接続の "autoCommit" 設定を上書きするかどうかを指定します。void
setRollbackBeforeClose
(boolean rollbackBeforeClose) 共有接続を閉じる前に明示的にロールバックするかどうかを指定します (自動コミットモードでない場合)。void
setSuppressClose
(boolean suppressClose) 返される接続がクローズ抑制プロキシである必要があるか、物理接続である必要があるかを指定します。boolean
shouldClose
(ConnectionSE con) これは単一の接続です。「プール」に戻るときに接続を閉じないでください。クラス org.springframework.jdbc.datasource.DriverManagerDataSource から継承されたメソッド
getConnectionFromDriver, getConnectionFromDriverManager, setDriverClassName
クラス org.springframework.jdbc.datasource.AbstractDriverBasedDataSource から継承されたメソッド
getCatalog, getConnectionFromDriver, getConnectionProperties, getPassword, getSchema, getUrl, getUsername, setCatalog, setConnectionProperties, setPassword, setSchema, setUrl, setUsername
クラス org.springframework.jdbc.datasource.AbstractDataSource から継承されたメソッド
getLoginTimeout, getLogWriter, getParentLogger, isWrapperFor, setLoginTimeout, setLogWriter, unwrap
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース javax.sql.CommonDataSourceSE から継承されたメソッド
createShardingKeyBuilder, getParentLogger
インターフェース javax.sql.DataSourceSE から継承されたメソッド
createConnectionBuilder, getLoginTimeout, getLogWriter, setLoginTimeoutSE, setLogWriterSE
インターフェース java.sql.WrapperSE から継承されたメソッド
isWrapperForSE, unwrapSE
コンストラクターの詳細
SingleConnectionDataSource
public SingleConnectionDataSource()Bean スタイルの構成のコンストラクター。SingleConnectionDataSource
public SingleConnectionDataSource(StringSE url, StringSE username, StringSE password, boolean suppressClose) 指定された標準 DriverManager パラメーターで新しい SingleConnectionDataSource を作成します。- パラメーター:
url
- DriverManager へのアクセスに使用する JDBC URLusername
- DriverManager へのアクセスに使用する JDBC ユーザー名password
- DriverManager へのアクセスに使用する JDBC パスワードsuppressClose
- 返された接続がクローズ抑制プロキシまたは物理接続である場合- 関連事項:
SingleConnectionDataSource
指定された標準 DriverManager パラメーターで新しい SingleConnectionDataSource を作成します。- パラメーター:
url
- DriverManager へのアクセスに使用する JDBC URLsuppressClose
- 返された接続がクローズ抑制プロキシまたは物理接続である場合- 関連事項:
SingleConnectionDataSource
指定された接続で新しい SingleConnectionDataSource を作成します。- パラメーター:
target
- 基になるターゲット接続suppressClose
- Connection をclose()
呼び出しを抑制する Connection でラップする必要がある場合 (プールされた接続を予期しているが、SmartDataSource インターフェースを知らないアプリケーションで、通常のclose()
の使用を可能にする)
メソッドの詳細
setSuppressClose
public void setSuppressClose(boolean suppressClose) 返される接続がクローズ抑制プロキシである必要があるか、物理接続である必要があるかを指定します。isSuppressClose
protected boolean isSuppressClose()返された接続がクローズ抑制プロキシか物理接続かを返します。setRollbackBeforeClose
public void setRollbackBeforeClose(boolean rollbackBeforeClose) 共有接続を閉じる前に明示的にロールバックするかどうかを指定します (自動コミットモードでない場合)。これは、テストシナリオの Oracle JDBC ドライバーに推奨されます。
- 導入:
- 6.1.2
isRollbackBeforeClose
protected boolean isRollbackBeforeClose()共有接続を閉じる前に明示的にロールバックする必要があるかどうかを返します (自動コミットモードでない場合)。- 導入:
- 6.1.2
setAutoCommit
public void setAutoCommit(boolean autoCommit) 返された接続の "autoCommit" 設定を上書きするかどうかを指定します。getAutoCommitValue
返された接続の "autoCommit" 設定を上書きする必要があるかどうかを返します。- 戻り値:
- "autoCommit" 値、または何も適用しない場合は
null
getConnection
クラスからコピーされた説明:AbstractDriverBasedDataSource
この実装は、この DataSource のデフォルトのユーザー名とパスワードを使用してgetConnectionFromDriver
に委譲します。- 次で指定:
- インターフェース
DataSourceSE
のgetConnection
- オーバーライド:
- クラス
AbstractDriverBasedDataSource
のgetConnection
- 例外:
SQLExceptionSE
- 関連事項:
getConnection
カスタムのユーザー名とパスワードを指定しても、単一の接続では意味がありません。同じユーザー名とパスワードが与えられた場合、単一の接続を返します。それ以外の場合は SQLException をスローします。- 次で指定:
- インターフェース
DataSourceSE
のgetConnectionSE
- オーバーライド:
- クラス
AbstractDriverBasedDataSource
のgetConnection
- 例外:
SQLExceptionSE
- 関連事項:
shouldClose
これは単一の接続です。「プール」に戻るときに接続を閉じないでください。- 次で指定:
- インターフェース
SmartDataSource
のshouldClose
- パラメーター:
con
- 確認する接続- 戻り値:
- 指定された接続を閉じるかどうか
- 関連事項:
close
public void close()基になる接続を閉じます。この DataSource のプロバイダーは、適切なシャットダウンに注意する必要があります。このクラスは
AutoCloseable
SE を実装しているため、try-with-resource ステートメントとともに使用できます。- 次で指定:
- インターフェース
AutoCloseableSE
のclose
- 導入:
- 6.1.2
destroy
public void destroy()基になる接続を閉じます。この DataSource のプロバイダーは、適切なシャットダウンに注意する必要があります。この Bean は
DisposableBean
を実装しているため、Bean ファクトリは Bean の破棄時にこれを自動的に呼び出します。- 次で指定:
- インターフェース
DisposableBean
のdestroy
initConnection
DriverManager を介して基になる接続を初期化します。resetConnection
public void resetConnection()基礎となる共有接続をリセットして、次のアクセスで再初期化します。prepareConnection
公開する前に、所定の接続を準備します。デフォルトの実装では、必要に応じて自動コミットフラグが適用されます。サブクラスでオーバーライドできます。
- パラメーター:
con
- 準備する接続- 例外:
SQLExceptionSE
- 関連事項:
closeConnection
基礎となる共有接続を閉じます。- 導入:
- 6.1.2
getCloseSuppressingConnectionProxy
すべてのメソッド呼び出しを委譲するプロキシを使用して、指定された接続をラップしますが、クローズ呼び出しを抑制します。- パラメーター:
target
- ラップする元の接続- 戻り値:
- ラップされた接続