2008年09月09日

MySQLからS2JDBC-Genで各種クラスを自動生成しましょう(Eclipse編)

コードなにがしにもアップしていますが、こちらにもアップしちゃいます。Eclipse+Dolteng+S2JDBC-Genは、SAStrutsでの開発を強力にサポートします。


目次


●序
●造
1.DoltengプラグインでEclipseプロジェクト"s2jdbc-gen-examples"を作成します。
2.MySQL Connector/J (JDBCドライバ)を配置
3.S2JDBC用のDICONファイルを作成
 s2jdbc.dicon
 jdbc.dicon
4.S2JDBC-Gen実行
●考
●おまけ的




今回はDolteng+S2JDBC-Genで、各種クラス(Entity, Service, Condition, Test)ソースの自動生成を試してみます。

ここでは、EclipseのAnt機能を使用します。

データベースはMySQLのインストール後の設定で構築したMySQL環境を使用します。

エンティティクラスの生成も併せて参考にして下さい。

前提:Doltengプラグインは、バージョン0.32.0以上であること。当バージョン未満では、S2JDBC-Gen関係のファイルが生成されません。




1.DoltengプラグインでEclipseプロジェクト"s2jdbc-gen-examples"を作成します。


設定項目を以下のようにして作成しましょう。
gen_eclipse1_1.jpg

この時点で、S2JDBC-GenおよびS2JDBC-Genが使用するJarファイルが"s2jdbc-gen-examples\lib"フォルダにコピーされ、また、S2JDBC-Gen用のAntビルドファイルが"s2jdbc-gen-examples\s2jdbc-gen-build.xml"としてコピーされます。

2.MySQL Connector/J (JDBCドライバ)を配置


S2JDBC-GenがEntityクラスを自動生成する際には、MySQLデータベースに接続してカタログ情報を取得します。なので、実行時にはJDBCドライバが必要になります。

環境・必要なモジュール準備でダウンロードした"mysql-connector-java-5.1.6-bin.jar"を
"s2jdbc-gen-examples\src\main\webapp\WEB-INF\lib"フォルダにコピーします。


チェック!1.、2.を行うと以下のようなフォルダ/ファイル配置になります。
gen_eclipse1_2.jpg

3.S2JDBC用のDICONファイルを作成


"s2jdbc-gen-examples\src\main\resources\s2jdbc.dicon"を以下の内容に変更します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"

"http://www.seasar.org/dtd/components24.dtd">
<components>
<include path="jdbc.dicon"/>
<include path="s2jdbc-internal.dicon"/>
<component name="jdbcManager" class="org.seasar.extension.jdbc.manager.JdbcManagerImpl">

<property name="maxRows">0</property>
<property name="fetchSize">0</property>
<property name="queryTimeout">0</property>

<property name="dialect">mysqlDialect</property>
</component>
</components>


"s2jdbc-gen-examples\src\main\resources\jdbc.dicon"を以下の内容に変更します。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components namespace="jdbc">
<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://localhost:3306/sastruts"
</property>
<property name="user">"sastruts"</property>
<property name="password">"sastruts"</property>

</component>

<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>



<component name="DataSource"
class="org.seasar.extension.dbcp.impl.DataSourceImpl"
/>
</components>



4.S2JDBC-Gen実行


S2JDBC-Genマニュアル:Antタスクの実行を参考にして以下のように作業を進めます。

"s2jdbc-gen-examples\s2jdbc-gen-build.xml"ファイルをEclipseのAntエディタで開き、Eclipseメニューから「Run」-「外部ツール」-「外部ツールダイアログを開く」を選択します。外部ツールダイアログが開きます。

gen_eclipse1_3.jpg

左側のメニューにある「Antビルド」という項目をダブルクリックすると、s2jdbc-gen-build.xmlに対する起動設定が新規作成されます。その後、引数に"gen-entity"を指定します。


※できない場合は、手動で新規作成しましょう。

gen_eclipse1_4.jpg

実行ボタンをクリックしましょう。ずらずらとコンソールに生成処理のログを出力されます。最終的に、

〜〜〜〜
[gen-service] DEBUG 2008-09-09 18:48:06,875 [main] S2Containerを作成しました。path=jdbc.dicon
[gen-service] DEBUG 2008-09-09 18:48:06,875 [main] S2Containerを作成します。path=s2jdbc-internal.dicon
[gen-service] DEBUG 2008-09-09 18:48:06,875 [main] S2Containerを作成します。path=convention.dicon
[gen-service] DEBUG 2008-09-09 18:48:06,890 [main] S2Containerを作成しました。path=convention.dicon
[gen-service] DEBUG 2008-09-09 18:48:06,890 [main] S2Containerを作成しました。path=s2jdbc-internal.dicon
[gen-service] DEBUG 2008-09-09 18:48:06,921 [main] S2Containerを作成しました。path=s2jdbc.dicon
[gen-service] INFO 2008-09-09 18:48:07,031 [main] Running on [ENV]ut, [DEPLOY MODE]Warm Deploy
[gen-service] DEBUG 2008-09-09 18:48:07,125 [main] コマンド(org.seasar.extension.jdbc.gen.internal.command.GenerateServiceCommand)を実行しました。
BUILD SUCCESSFUL
Total time: 7 seconds

と表示されればOKです。

生成したファイルは、Eclipseのパッケージエクスプローラービューにすぐに表示されませんので、パッケージエクスプローラービュー中のプロジェクトフォルダを左クリックしてF5キー(更新)を押し、ファイルシステムと同期させましょう。そうすると、パッケージエクスプローラービューに生成したファイルが表示されます。

以下のように各種クラス(Entity, Service, Condition, Test)のソースが生成されます。
gen_eclipse1_5.jpg


う〜ん。これはハイパー簡単ですね。さらにDoltengでここでの手順を自動的に出来てしまうと、なお良いというのは贅沢でしょうか?

おまけ的


今回、初めてAntツールを使っているわけなのですが、こんな便利なコマンドがあるのですね。ビルドファイル内に記述すると、環境変数のリストがコンソールに表示されます。
<echoproperties/>

posted by 台北猫々 at 19:11| Comment(0) | TrackBack(0) | 技術メモ(SAStruts)