2008年5月26日月曜日

NetBeans 6.1 で iBATIS(iBATOR)


iBATISには、DTOやSqlMapファイルを生成するEclipseプラグイン(abator)がある。この自動生成機能はスタンドアロンで実行可能なjarファイルになっているので、NetBeans 6.1から使用してソース生成をしてみる。

abatorはなんか問題があって(Due to a trade registration dispute)で、iBATORに名称変更している。iBATORは開発中(名称変更中?)なのか、コンパイル済みの配布物がWebサイトにないが、SVNリポジトリにソースがあるので、ついでにビルドして使ってみようと思う。

1) iBATORソースの取得とビルド(これもNetBeansで)
  1. SVNリポジトリからチェックアウト
  2. 「Java自由形式プロジェクト」としてプロジェクト作成、ウィザードにて下記の設定をする(後からも設定できる)
  3. 「Javaソース」はsrcに設定
  4. 「Javaソースのクラスパス」はdevlib内のjarを選択
  5. ビルドファイルにbuild/build.xmlを指定すれば、IDEが適当なターゲットを選んでくれる
  6. NetBeansから構築すれば、build/deploy/filesにibator.jarが作成された
  7. (すんなりできると思わなかったが…)
2) iBATORプロジェクトの準備
iBATORでソース生成するためのNetBeansプロジェクトを作成する。ソース生成をして、iBATISで簡単なデータアクセスを行ってみる。
  1. 「Javaアプリケーション」プロジェクトを新規作成
  2. libフォルダを作成し、1)で作ったibator.jarとibatisのjar、JDBCドライバのjarをコピー
  3. 上記をプロジェクトのライブラリに追加
3) iBATOR用のファイルの作成
NetBeansからiBATORを実行するために、設定ファイルとAntタスクを準備する。iBATORのドキュメントに説明が書いてある(でも英語)。iBATORのドキュメントは、SVNから落としたソースの中に含まれる。プロジェクト全体の構成はスクリーンショット参照
  1. ibatorConfig.xmlを作成してソース生成の基本情報を設定


  2. <?xml version="1.0" encoding="Windows-31J"?>
    <!DOCTYPE ibatorConfiguration
    PUBLIC "-//Apache Software Foundation//DTD Apache iBATIS ibator Configuration 1.0//EN"
    "http://ibatis.apache.org/dtd/ibator-config_1_0.dtd">
    <ibatorConfiguration>
    <classPathEntry location="${generated.source.dir}/lib/ojdbc14.jar" />

    <ibatorContext id="ibatorGeneration" generatorSet="Java2">
    <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
    connectionURL="jdbc:oracle:thin:@host:1521:sid"
    userId="scott"
    password="tiger">
    </jdbcConnection>

    <!-- 必須 -->
    <javaTypeResolver >
    <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

    <!-- DTOとsqlMapファイルの生成を行う -->
    <javaModelGenerator targetPackage="dto" targetProject="${generated.source.dir}/src" />
    <sqlMapGenerator targetPackage="sqlmap" targetProject="${generated.source.dir}/src" />

    <!-- DAO生成を行う場合は下記
    <daoGenerator type="IBATIS" targetPackage="dao" targetProject="${generated.source.dir}/src" />
    -->

    <!-- スキーマと生成対象の表名(ワイルドカード可) -->
    <table schema="SCOTT" tableName="%">
    <property name="useActualColumnNames" value="true"/>
    </table>
    </ibatorContext>
    </ibatorConfiguration>

  3. ibator.xmlを作成してiBATOR用のAntタスクを書く

  4. <?xml version="1.0" encoding="Windows-31J"?>
    <project default="genfiles" basedir=".">
    <property name="generated.source.dir" value="${basedir}" />
    <target name="genfiles" description="Generate the files">
    <taskdef name="ibator"
    classname="org.apache.ibatis.ibator.ant.IbatorAntTask"
    classpath="lib/ibator.jar" />
    <ibator overwrite="true" configfile="${basedir}/ibatorConfig.xml" verbose="false" >
    <propertyset>
    <propertyref name="generated.source.dir"/>
    </propertyset>
    </ibator>
    </target>
    </project>

4) Antタスクを実行するとdtoとsqlmapフォルダ、ファイルが生成される
 (スクリーンショット参照)

0 件のコメント: