SAStruts(Super Agile Struts)あれこれ

ATOMRSS

MySQLからS2JDBC-GenでEntityを自動生成しましょう(コマンドライン編)

目次

    • 1.Apache-Antをダウンロード&セットアップ
    • 2.S2JDBC-GenやSeasar2(S2JDBC)のJARファイルをダウンロード&セットアップ
    • 3.MySQL Connector/J (JDBCドライバ)を配置
    • 4.Seasar2とS2JDBC用のDICONファイルを作成
      • convention.dicon
      • s2jdbc.dicon
      • jdbc.dicon
    • 5.ビルドコンフィグファイル作成
    • 6.Entityクラスの自動生成
  • おまけ的
    • フォルダ/ファイル構成



今回はS2JDBC-GenのEntityクラスの自動生成機能を試してみます。
EclipseのAnt機能でも生成可能なのですが、ここではコマンドラインでAntコマンドを使用する方法で行います。

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

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


1.Apache-Antをダウンロード&セットアップ

こちらからApache-Antをダウンロードします(本稿執筆時2008.09.03の最新はapache-ant-1.7.1-bin.zipです)。

apache-ant-1.7.1-bin.zipを解凍して出来た、apache-ant-1.7.1フォルダを任意の場所に移動します。本稿ではC:\usr\localに移動します。

PATHに"C:\usr\local\apache-ant-1.7.1\bin"を追加します。



2.S2JDBC-GenやSeasar2(S2JDBC)のJARファイルをダウンロード&セットアップ

作業ディレクトリ作成

以下のフォルダを作成します。
C:\usr\local\s2jdbc
C:\usr\local\s2jdbc\lib
C:\usr\local\s2jdbc\conf


S2JDBC-GenのJARファイル

こちらからS2JDBC-Gen(本稿執筆時2008.09.03の最新はS2JDBC-Gen 0.9.0です)をダウンロードしましょう。

ダウンロードしたファイルを任意の場所で解凍して、生成した"s2jdbc-gen\lib"配下にあるJARファイルを、"C:\usr\local\s2jdbc\lib"フォルダにコピーします。


Seasar2(S2JDBC)のJARファイル

本当はSeasar2セットアップに従って、必要なモジュールをセットアップするのですが、ここではサボっちゃいます。

こちらからS2JDBCのチュートリアル(本稿執筆時2008.09.03の最新はS2JDBC Tutorial 2.4.28です)をダウンロードしましょう。

ダウンロードしたファイルを任意の場所で解凍して、生成した"s2jdbc-tutorial\lib"配下にあるJARファイルを、"C:\usr\local\s2jdbc\lib"フォルダにコピーします。


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

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

環境・必要なモジュール準備でダウンロードした"mysql-connector-java-5.1.6-bin.jar"を "C:\usr\local\s2jdbc\lib"フォルダにコピーします。


4.Seasar2とS2JDBC用のDICONファイルを作成

"C:\usr\local\s2jdbc\conf\convention.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>
	<component class="org.seasar.framework.convention.impl.NamingConventionImpl">
		<initMethod name="addRootPackageName">
			<arg>""</arg>
		</initMethod>
	</component>
	<component class="org.seasar.framework.convention.impl.PersistenceConventionImpl"/>
</components>


"C:\usr\local\s2jdbc\conf\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>


"C:\usr\local\s2jdbc\conf\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>


5.ビルドコンフィグファイル作成

"C:\usr\local\s2jdbc\s2jdbc-gen-build.xml"を以下の内容で作成します。
<?xml version="1.0"?>
<project name="sample" default="gen-entity" basedir=".">
    <path id="classpath">
        <fileset dir="lib"/>
    </path>
    <taskdef resource="s2jdbc-gen-task.properties" classpathref="classpath"/>
    <target name="gen-entity">
        <gen-entity
            rootpackagename="mysql"
            classpathref="classpath"
            classpath="conf"
            overwrite="true"
        />
    </target>
</project>




6.Entityクラスの自動生成

Windowsのコマンドプロンプトを起動して、"C:\usr\local\s2jdbc"にチェンジディレクトリ(移動)して、以下のコマンドを実行します。
ant -f s2jdbc-gen-build.xml gen-entity


以下のような表示がされ、"src/main/mysql/entity"フォルダにエンティティクラスファイルが生成されます。
C:\usr\local\s2jdbc>ant -f s2jdbc-gen-build.xml gen-entity
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.6.
0_07\lib\tools.jar
Buildfile: s2jdbc-gen-build.xml


gen-entity:

BUILD SUCCESSFUL Total time: 3 seconds
"Unable to locate tools.jar."というメッセージは、JREのjavaコマンドを使用しているために出力されているだけなので、ここでは問題ないので無視して構いません。"tools.jar"は、JDKに同梱されています(C:\Program Files\Java\jdk1.6.0_07\libなどにあります)。antは開発環境で使用されることを前提としているためでしょうか?

以下の3つのエンティティクラスファイルが生成されます。
src/main/mysql/entity/Address.java
src/main/mysql/entity/Department.java
src/main/mysql/entity/Employee.java
中を見ると↓のようにテーブル結合のアノテートもされています。
Employee.java抜粋
    /** addressIdプロパティ */
    @Column(precision = 10, nullable = true, unique = false)
    public Integer addressId;


/** address関連プロパティ */ @ManyToOne public Address address;


おまけ的

フォルダ/ファイル構成

作業しているフォルダ/ファイルの構成は、以下のようになります。 srcフォルダ配下が生成されたエンティティクラスファイルです。
─────────────────────────────────────
C:\usr\local\s2jdbc
s2jdbc                                        < Dir > 
├ conf                                       < Dir > 
│ ├ convention.dicon                            442  2008/09/03 14:37:57
│ ├ jdbc.dicon                                1,306  2008/09/03 10:29:28
│ └ s2jdbc.dicon                                542  2008/09/03 13:52:31
├ lib                                        < Dir > 
│ ├ ant-1.7.0.jar                         1,289,806  2008/09/02 17:58:48
│ ├ aopalliance-1.0.jar                       4,467  2008/06/26 23:53:12
│ ├ commons-logging-1.1.jar                  52,915  2008/06/26 23:54:08
│ ├ freemarker-2.3.13.jar                   870,292  2008/09/02 17:58:44
│ ├ geronimo-annotation_1.0_spec-1.0.jar     12,085  2008/06/26 23:53:50
│ ├ geronimo-ejb_3.0_spec-1.0.jar            31,752  2008/06/26 23:54:14
│ ├ geronimo-interceptor_3.0_spec-1.0.jar     8,954  2008/06/26 23:54:14
│ ├ geronimo-jpa_3.0_spec-1.0.jar            52,555  2008/06/26 23:54:00
│ ├ geronimo-jta_1.1_spec-1.0.jar            14,972  2008/06/26 23:54:04
│ ├ geronimo-jta_1.1_spec-1.0-tsr.jar         7,329  2008/06/26 23:54:08
│ ├ hsqldb-1.8.0.1.jar                      625,096  2008/06/26 23:54:02
│ ├ javassist-3.4.ga.jar                    471,005  2008/06/26 23:54:12
│ ├ junit-3.8.2.jar                         120,640  2008/06/26 23:54:12
│ ├ log4j-1.2.13.jar                        358,180  2008/06/26 23:54:10
│ ├ mysql-connector-java-5.1.6-bin.jar      703,265  2008/03/05 17:27:00
│ ├ ognl-2.6.9-patch-20070908.jar           166,995  2008/06/26 23:54:00
│ ├ poi-3.0-FINAL.jar                     1,767,938  2008/06/26 23:53:56
│ ├ s2-extension-2.4.28.jar                 385,584  2008/08/26 16:50:36
│ ├ s2-framework-2.4.28.jar                 654,191  2008/08/26 17:34:36
│ ├ s2jdbc-gen-0.9.0.jar                    366,917  2008/09/02 19:41:58
│ ├ s2-tiger-2.4.28.jar                     569,177  2008/08/26 17:34:36
│ └ servlet-api.jar                          97,703  2008/06/26 23:54:08
├ src                                        < Dir > 
│ └ main                                    < Dir > 
│    └ java                                 < Dir > 
│       └ mysql                             < Dir > 
│          └ entity                         < Dir > 
│             ├ Address.java                    743  2008/09/04 09:03:35
│             ├ Department.java                 752  2008/09/04 09:03:35
│             └ Employee.java                 1,300  2008/09/04 09:03:35
└ s2jdbc-gen-build.xml                           447  2008/09/04 08:53:57
─────────────────────────────────────

アップロードしたファイル

プレゼン公開・共有サイト handsOut.jp チーム・マイナス6% - みんなで止めよう温暖化

基本情報

ソースコードID:
597
登録者:
台北猫々
登録日時:
2008/07/30 13:42
最終更新日時:
2009/05/08 22:46
登録ページ数:
106
アクセス数:
79053
タグ:
java mysql json ajax hello sastruts ページング サンプル フレームワーク データベース トークンチェック テンプレート flex validwhen s2jdbc dolteng jaxb リセット s2jdbc-gen 自動生成 一括登録 super agile struts ria tiles 一括更新 jsonic エンティティ
編集権限:
ログインユーザ全員
ブックマーク:
  • codeなにがしブックマークに追加する 0 users
  • このページをはてなブックマークに追加
  • このページを del.icio.us に追加

GoodJob

  • GoodJob
  • 1668

GJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJGJ

GJGJGJGJGJGJGJGJ

編集者一覧

  • 台北猫々

GoodJobしたユーザ

  • ikdk
  • NAT
  • mikeda
  • うさうさ
  • こてつ
  • greennoah
  • とむよん
  • icofit
  • teshimasa4
  • tamr
  • T[]HAL

ブックマークコメント