|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectorg.seasar.junitcdi.jta.datasource.AbstractDataSource
@ApplicationScoped public abstract class AbstractDataSource
beanとして利用可能なDataSourceの抽象クラスです.
このDataSourceはS2DBCPをラップしており,S2JTAと連携します.
このクラスを利用するにはサブクラスを作成してDataSourceDefinitionで接続情報を注釈します.
@DataSourceDefinition(
name = "...",
className = "...",
url = "...",
user = "...",
password = "...")
public class DefaultDataSource extends AbstractDataSource {
}
このデータソースはbeanとして他のbeanにDIすることが可能です.
@Inject
DataSource ds;
接続情報は以下のように指定します.
| 要素 | 説明 |
|---|---|
name |
データソースをJNDIに登録する名前です. |
className |
JDBC ドライバのクラス名です.(DataSourceDefinition本来の仕様では DataSource
のクラス名を指定することになっていますが, このクラスではJDBCドライバのクラス名として解釈します) |
url |
接続 URL です. |
name |
ユーザ名です. |
password |
パスワードです. |
複数のDataSourceを使用する場合はAbstractDataSourceのサブクラスを複数作成します.
デフォルトで使用されるデータソース (高々一つ) を除いたクラスには,qualifierを指定します.
@Qualifier
@Target( { TYPE, FIELD, PARAMETER })
@Retention(RUNTIME)
public @interface Hoge {}
@Hoge
@DataSourceDefinition(...)
public class HogeDataSource extends AbstractDataSource {
}
このデータソースを使用する場所も同じQualifierで注釈します.
@Inject @Hoge DataSource dataSource;
DataSourceのスコープはApplicationScopedであり,
スコープが破棄される際に自動的にクローズされます.
| フィールドの概要 | |
|---|---|
protected BeanManager |
beanManager
BeanManager |
protected org.seasar.extension.dbcp.impl.DataSourceImpl |
dataSource
コネクションプール |
protected TransactionManager |
transactionManager
連携する TransactionManager |
| コンストラクタの概要 | |
|---|---|
AbstractDataSource()
|
|
| メソッドの概要 | ||
|---|---|---|
void |
close()
コネクションプールをクローズします. |
|
protected XADataSource |
createXADataSource(DataSourceDefinition definition)
DataSourceDefinitionの情報からXADataSourceを作成して返します. |
|
Connection |
getConnection()
|
|
Connection |
getConnection(String username,
String password)
|
|
int |
getLoginTimeout()
|
|
PrintWriter |
getLogWriter()
|
|
boolean |
isWrapperFor(Class<?> iface)
|
|
void |
open()
コネクションプールをオープンします. |
|
void |
setLoginTimeout(int seconds)
|
|
void |
setLogWriter(PrintWriter out)
|
|
|
unwrap(Class<T> iface)
|
|
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
|---|
@Inject protected BeanManager beanManager
BeanManager
@Inject protected TransactionManager transactionManager
TransactionManager
protected org.seasar.extension.dbcp.impl.DataSourceImpl dataSource
| コンストラクタの詳細 |
|---|
public AbstractDataSource()
| メソッドの詳細 |
|---|
@PostConstruct
public void open()
throws Exception
Exception - 例外が発生した場合@PreDestroy public void close()
protected XADataSource createXADataSource(DataSourceDefinition definition)
throws SQLException
DataSourceDefinitionの情報からXADataSourceを作成して返します.
definition - 接続情報
XADataSource
SQLException - SQL例外が発生した場合
public Connection getConnection()
throws SQLException
DataSource 内の getConnectionSQLException
public Connection getConnection(String username,
String password)
throws SQLException
DataSource 内の getConnectionSQLException
public int getLoginTimeout()
throws SQLException
CommonDataSource 内の getLoginTimeoutSQLException
public PrintWriter getLogWriter()
throws SQLException
CommonDataSource 内の getLogWriterSQLException
public void setLoginTimeout(int seconds)
throws SQLException
CommonDataSource 内の setLoginTimeoutSQLException
public void setLogWriter(PrintWriter out)
throws SQLException
CommonDataSource 内の setLogWriterSQLException
public boolean isWrapperFor(Class<?> iface)
throws SQLException
Wrapper 内の isWrapperForSQLException
public <T> T unwrap(Class<T> iface)
throws SQLException
Wrapper 内の unwrapSQLException
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||