「s2dao」の編集履歴(バックアップ)一覧はこちら
「s2dao」(2007/09/15 (土) 23:01:25) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
S2DAO - * Seaserの O/Rマッピング
* Seaserの O/Rマッピング
o 公式サイト
o diconファイル例
+ hoge.dicon
+ jdbc.dicon 例
+ 自動登録したい場合の hoge.dicon 記述例
o S2DAO 呼び出し
Seaserの O/Rマッピング
公式サイト
http://s2dao.seasar.org/ja/index.html
diconファイル例
S2DAOを利用するためには diconファイルをいくつか作成する必要がある。まず コンテナを作成する時に呼び出す例から
hoge.dicon
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
"http://www.seasar.org/dtd/components.dtd">
<components namespace="dao">
<include path="dao.dicon"/>
<!-- ここにDAOコンポーネントを追加していく -->
<component class="AccountDao">
<aspect>dao.interceptor</aspect>
</component>
</components>
dao.diconをincludeすると dao.dicon,j2ee.dicon, jdbc.diconが呼び出される
jdbc.diconファイルは用意されていないので自分でつくる
jdbc.dicon 例
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
"http://www.seasar.org/dtd/components.dtd">
<components>
<!-- トランザクションの設定 -->
<include path="jta.dicon"/>
<!--- データベース接続の設定 -->
<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"com.mysql.jdbc.Driver"
</property>
<property name="URL">
"jdbc:mysql://43.253.252.115/accelia?useUnicode=true"
</property>
<property name="user">"accelia"</property>
<property name="password">"accelia"</property>
</component>
<!-- DBCP コネクションプールの設定 -->
<component name="connectionPool"
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
<property name="timeout">600</property>
<property name="maxPoolSize">10</property>
<property name="allowLocalTx">true</property>
<destroyMethod name="close"/>
</component>
<!-- DI 具象クラス設定 -->
<component name="dataSource"
class="org.seasar.extension.dbcp.impl.DataSourceImpl"/>
<component name="resultSet"
class="org.seasar.extension.jdbc.impl.BasicResultSetFactory" />
<component name="statement"
class="org.seasar.extension.jdbc.impl.BasicStatementFactory" />
</components>
自動登録したい場合の hoge.dicon 記述例
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
"http://www.seasar.org/dtd/components.dtd">
<components namespace="dao">
<include path="dao.dicon"/>
<component
class="org.seasar.dao.impl.FieldAnnotationReaderFactory"/>
<component name="interceptor"
class="org.seasar.dao.interceptors.S2DaoInterceptor"/>
<!-- AutoRegister for DAO -->
<component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
<initMethod name="addClassPattern">
<arg> "DAO"</arg> <!-- 登録したいコンポーネントのパッケージ名-->
<arg> ".*Dao"</arg> <!-- 登録したいコンポーネント名(正規表現 ",区切り可") -->
</initMethod>
</component>
<component class="org.seasar.framework.container.autoregister.AspectAutoRegister">
<property name="interceptor">dao.interceptor </property>
<initMethod name="addClassPattern">
<arg>"DAO"</arg>
<arg>".*Dao"</arg>
</initMethod>
</component>
</components>
S2DAO 呼び出し
これだけ
S2Container con = S2ContainerFactory.create("moge.dicon");
con.init(); // auto registerする場合は必須
AccountDao ad = (AccountDao)con.getComponent(AccountDao.class);
System.out.println(ad.getDatas().size());