org.seasar.junitcdi.jta.datasource
クラス AbstractDataSource

java.lang.Object
  上位を拡張 org.seasar.junitcdi.jta.datasource.AbstractDataSource
すべての実装されたインタフェース:
Wrapper, CommonDataSource, DataSource

@ApplicationScoped
public abstract class AbstractDataSource
extends Object
implements DataSource

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であり, スコープが破棄される際に自動的にクローズされます.

作成者:
koichik

フィールドの概要
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)
           
<T> T
unwrap(Class<T> iface)
           
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

beanManager

@Inject
protected BeanManager beanManager
BeanManager


transactionManager

@Inject
protected TransactionManager transactionManager
連携するTransactionManager


dataSource

protected org.seasar.extension.dbcp.impl.DataSourceImpl dataSource
コネクションプール

コンストラクタの詳細

AbstractDataSource

public AbstractDataSource()
メソッドの詳細

open

@PostConstruct
public void open()
          throws Exception
コネクションプールをオープンします.

例外:
Exception - 例外が発生した場合

close

@PreDestroy
public void close()
コネクションプールをクローズします.


createXADataSource

protected XADataSource createXADataSource(DataSourceDefinition definition)
                                   throws SQLException
DataSourceDefinitionの情報からXADataSourceを作成して返します.

パラメータ:
definition - 接続情報
戻り値:
XADataSource
例外:
SQLException - SQL例外が発生した場合

getConnection

public Connection getConnection()
                         throws SQLException
定義:
インタフェース DataSource 内の getConnection
例外:
SQLException

getConnection

public Connection getConnection(String username,
                                String password)
                         throws SQLException
定義:
インタフェース DataSource 内の getConnection
例外:
SQLException

getLoginTimeout

public int getLoginTimeout()
                    throws SQLException
定義:
インタフェース CommonDataSource 内の getLoginTimeout
例外:
SQLException

getLogWriter

public PrintWriter getLogWriter()
                         throws SQLException
定義:
インタフェース CommonDataSource 内の getLogWriter
例外:
SQLException

setLoginTimeout

public void setLoginTimeout(int seconds)
                     throws SQLException
定義:
インタフェース CommonDataSource 内の setLoginTimeout
例外:
SQLException

setLogWriter

public void setLogWriter(PrintWriter out)
                  throws SQLException
定義:
インタフェース CommonDataSource 内の setLogWriter
例外:
SQLException

isWrapperFor

public boolean isWrapperFor(Class<?> iface)
                     throws SQLException
定義:
インタフェース Wrapper 内の isWrapperFor
例外:
SQLException

unwrap

public <T> T unwrap(Class<T> iface)
         throws SQLException
定義:
インタフェース Wrapper 内の unwrap
例外:
SQLException


Copyright © 2010 The Seasar Foundation. All Rights Reserved.