クラス ShardingKeyDataSourceAdapter
java.lang.ObjectSE
org.springframework.jdbc.datasource.DelegatingDataSource
org.springframework.jdbc.datasource.ShardingKeyDataSourceAdapter
- 実装されたすべてのインターフェース:
WrapperSE
、CommonDataSourceSE
、DataSourceSE
、InitializingBean
ターゲット
DataSource
SE 用のアダプター。シャーディングキーが指定されている場合、すべての標準 #getConnection
呼び出しに適用し、指定されたシャーディングキー値に対応するシャードへの直接接続を返すように設計されています。他のすべてのメソッドは、ターゲット DataSource
の対応するメソッドに単純に委譲します。 ターゲット DataSource
は createConnectionBuilder()
メソッドを実装する必要があります。そうしないと、シャード接続を取得しようとすると SQLFeatureNotSupportedException
SE がスローされます。
このアダプターは、#getConnection
呼び出しごとに現在のシャーディングキーを取得するために使用される ShardingKeyProvider
コールバックを使用して構成する必要があります。例:
ShardingKeyDataSourceAdapter dataSourceAdapter = new ShardingKeyDataSourceAdapter(dataSource); dataSourceAdapter.setShardingKeyProvider(() -> dataSource.createShardingKeyBuilder() .subkey(SecurityContextHolder.getContext().getAuthentication().getName(), JDBCType.VARCHAR).build());
- 導入:
- 6.1.2
- 作成者:
- Mohamed Lahyane (Anir), Juergen Hoeller
- 関連事項:
コンストラクターの概要
コンストラクターコンストラクター説明ShardingKeyDataSourceAdapter
(DataSourceSE dataSource) 指定されたDataSource
SE をラップして、ShardingKeyDataSourceAdapter
の新しいインスタンスを作成します。ShardingKeyDataSourceAdapter
(DataSourceSE dataSource, ShardingKeyProvider shardingKeyProvider) 指定されたDataSource
SE をラップして、ShardingKeyDataSourceAdapter
の新しいインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明ターゲットDataSource
のcreateConnectionBuilder()
メソッドを使用してConnectionBuilder
SE の新しいインスタンスを作成し、構成されたShardingKeyProvider
から適切なシャーディングキーを設定します。提供されたシャーディングキーとスーパーシャーディングキー (使用可能な場合) を使用して、データベースシャードへの接続を取得します。getConnection
(StringSE username, StringSE password) シャーディングキー (使用可能な場合) と指定された資格情報を考慮して、指定されたユーザー名とパスワードを使用してデータベースシャードへの接続を取得します。void
setShardingKeyProvider
(ShardingKeyProvider shardingKeyProvider) このアダプターにはShardingKeyProvider
を設定します。クラス org.springframework.jdbc.datasource.DelegatingDataSource から継承されたメソッド
afterPropertiesSet, createShardingKeyBuilder, getLoginTimeout, getLogWriter, getParentLogger, getTargetDataSource, isWrapperFor, obtainTargetDataSource, setLoginTimeout, setLogWriter, setTargetDataSource, unwrap
コンストラクターの詳細
ShardingKeyDataSourceAdapter
指定されたDataSource
SE をラップして、ShardingKeyDataSourceAdapter
の新しいインスタンスを作成します。- パラメーター:
dataSource
- ラップされるターゲットDataSource
ShardingKeyDataSourceAdapter
public ShardingKeyDataSourceAdapter(DataSourceSE dataSource, ShardingKeyProvider shardingKeyProvider) 指定されたDataSource
SE をラップして、ShardingKeyDataSourceAdapter
の新しいインスタンスを作成します。- パラメーター:
dataSource
- ラップされるターゲットDataSource
shardingKeyProvider
- シャーディングキーの取得に使用されるShardingKeyProvider
メソッドの詳細
setShardingKeyProvider
このアダプターにはShardingKeyProvider
を設定します。getConnection
提供されたシャーディングキーとスーパーシャーディングキー (使用可能な場合) を使用して、データベースシャードへの接続を取得します。シャーディングキーは、構成された
ShardingKeyProvider
から取得されます。- 次で指定:
- インターフェース
DataSourceSE
のgetConnection
- オーバーライド:
- クラス
DelegatingDataSource
のgetConnection
- 戻り値:
- 直接シャード接続を表す
Connection
オブジェクト - 例外:
SQLExceptionSE
- 接続の作成中にエラーが発生した場合- 関連事項:
getConnection
シャーディングキー (使用可能な場合) と指定された資格情報を考慮して、指定されたユーザー名とパスワードを使用してデータベースシャードへの接続を取得します。シャーディングキーは、構成された
ShardingKeyProvider
から取得されます。- 次で指定:
- インターフェース
DataSourceSE
のgetConnectionSE
- オーバーライド:
- クラス
DelegatingDataSource
のgetConnection
- パラメーター:
username
- 接続が確立されているデータベースユーザーpassword
- ユーザーのパスワード- 戻り値:
- 直接シャード接続を表す
Connection
オブジェクト - 例外:
SQLExceptionSE
- 接続の作成中にエラーが発生した場合
createConnectionBuilder
ターゲットDataSource
のcreateConnectionBuilder()
メソッドを使用してConnectionBuilder
SE の新しいインスタンスを作成し、構成されたShardingKeyProvider
から適切なシャーディングキーを設定します。- 次で指定:
- インターフェース
DataSourceSE
のcreateConnectionBuilder
- オーバーライド:
- クラス
DelegatingDataSource
のcreateConnectionBuilder
- 戻り値:
- 直接シャード接続のビルダーを表す ConnectionBuilder オブジェクト
- 例外:
SQLExceptionSE
- ConnectionBuilder の作成中にエラーが発生した場合