Skip to content

ConnectionSupplier

DB接続を行う際のコネクションを提供するクラスです。 標準で以下のクラスが提供されているので用途に応じて使い分けてください。

クラス名説明
DefaultConnectionSupplierImplコンストラクタで受け取ったコネクションを返すだけのコネクション供給クラス
JdbcConnectionSupplierImplJDBCドライバーマネージャを使用したコネクション提供クラス
DataSourceConnectionSupplierImplデータソースを使用したコネクション提供クラス

また、ConnectionSupplierインタフェースを実装した独自のJDBCコネクション提供クラスを利用することもできます。

ConnectionContext 0.19.0+

動的にSqlAgentの接続先を切り替える場合は、SqlConfig#agent(ConnectionContext)メソッドを使用します。

ConnectionContextは、ConnectionContextBuilderの下記メソッドを利用して、インスタンスを生成します。

戻り値メソッド名説明
DataSourceConnectionContextdataSource()DataSourceConnectionContext を生成する.
DataSourceConnectionContextdataSource(String dataSourceName)DataSourceConnectionContext を生成する.
JdbcConnectionContextjdbc(String url)JdbcConnectionContext を生成する.
JdbcConnectionContextjdbc(String url, String user, String password)JdbcConnectionContext を生成する.
JdbcConnectionContextjdbc(String url, String user, String password, String schema)JdbcConnectionContext を生成する.

実装例

java
SqlConfig config = UroboroSQL
    .builder()
    .setConnectionSupplier(new JdbcConnectionSupplier("jdbc:h2:mem:mainConnection", "sa", "sa"))
    .build();

try (SqlAgent agent = config.agent()) {
  // using jdbc:h2:mem:mainConnection
  agent.required(() -> {
    ....
  });
}

//-------------------------------------------------------

try (SqlAgent agent = config.agent(ConnectionContextBuilder
				.jdbc("jdbc:h2:mem:subConnection", "sa", "sa"))) {
  // usingjdbc:h2:mem:subConnection
  agent.required(() -> {
    ....
  });
}