SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

O/RマッピングをサポートするEclipseプラグイン「CROSSFIRE O/R」

ソースコード自動生成型のO/Rマッピングツールの利用

  • このエントリーをはてなブックマークに追加

ソースコード自動生成型のO/Rマッピングエンジンである「CROSSFIRE O/R」を紹介します。CROSSFIRE O/Rベーシック版は無料で利用できるため、誰でもスムーズな開発を楽しむことができます。このツールを使うことによって、毎回同じような作業でわずらわしいJDBC周りの単純作業を自動化することが可能です。

  • このエントリーをはてなブックマークに追加

CROSSFIRE O/Rとは?

 CROSSFIRE O/Rは、名前の通りO/Rマッピングツールです。しかし、他のO/Rマッピングのフレームワークやツールと何が違うかというと、ソースコード自動生成型であるということです。

 O/Rマッピングツールを使ってみたものの、なかなか難しかったり、思うように使えなかったりするケースは非常に多いのではないでしょうか? その点、CROSSFIRE O/Rはユーザーに対して非常にシンプルな構造になっていますので、Java初心者の方でも簡単に使えると筆者は感じています。

CROSSFIRE O/Rの特徴

 CROSSFIRE O/Rの具体的な特徴は、次のようになっています。

SQLベースのシンプルな設計

 O/Rマッピングのフレームワークやツールを使うに当たって、そのO/Rマッピングに関連した事項を勉強しなくてはならない場合には、かなり学習コストがかかります。

 CROSSFIRE O/Rの場合、入力すべき情報は次の2つだけです。

  • テーブルの定義
  • 実行したいSQL

 つまり、SQL関連の情報さえ入力しておけば、Javaに関する部分はすべて完全に自動生成されるのです。下図の「database.hyperdb」というファイルにテーブル定義を入力し、「hyperdb.dbfunc」と言うファイルに設定したいSQLを入力します。

テーブル情報の入力
テーブル情報の入力

 また、それらのファイルをEclipseで開くと次のようになります。

テーブル情報の入力
テーブル情報の入力

 テーブルの情報をGUIのエディタで入力します。上図は、外部キーを入力したところです。

実行したいSQLの入力
実行したいSQLの入力

 例として、SELECT文を実行するメソッドの例を示します。「TOY」テーブルと「CHLDREN」テーブルをJOINしています。

SQLに変数を埋め込んだスクリプト

 前節の入力情報では、下図のようなSQLを実行します。

SELECT実行メソッドで実行されるSQL
SELECT実行メソッドで実行されるSQL

 このビューは、CROSSFIRE O/Rが持っている機能の一つであり、実行するSQLを編集する際には、このビューを利用して全体でどのようなSQLを実行しているのか見ながら作業を進めることができます。

 ここで、SQLの中に「$」で始まるものが出てきます。これは動的変数で、このSQLを実行するメソッドに対して入力した値に置き換えることが可能です。

リレーションも扱える

 CROSSFIRE O/Rでは、外部キーによるリレーションも扱うことができます。テーブル情報の入力から、そのテーブルに対応したJavaBeanが自動的に作成されます。

CHILDRENテーブル用のBean
public class Children {
    private Integer id;
    private String name;
    private Timestamp birthDay;
    // ↓自動的に参照されている状況を認識して加えられる
    private List ownerToyRefList = new LinkedList();
    //(中略)
}
TOYテーブル用のBean
public class Toy {
    private Integer id;
    private String toyName;
    private Integer owner;
    // ↓OWNERが外部キーなので自動的に付けられる
    private Children ownerChildrenRefObj = null;
    //(中略)
}

 この例は、「テーブル情報の入力」に対する入力になっています。この場合、子供(CHILDREN)がおもちゃ(TOY)を持っているという簡単な1:多のリレーションのモデルです(子供が1、おもちゃが多)。

表現しているリレーション
表現しているリレーション

 テーブル情報の設定で外部キーを設定しておくことで、簡単にO/Rのリレーションの関係を表現するソースコードが自動生成されます。さらに、この2つのテーブルをJOINするSQLを入力した場合には、上記のBeanのフィールドの値をきちんとセットするソースコードが自動で生成されます。

さまざまな支援機能

 CROSSFIRE O/Rでは、ソースコードを自動生成するだけではなく、便利な機能を複数備えています。

コンテンツアシスト機能
コンテンツアシスト機能

 例えば、各入力フィールドにはコンテンツアシスト機能がついていて、テーブル名やカラム名を[Ctrl]+[Space]で補完しながら入力していくことが可能です。

自動生成したメソッドの使用例表示
自動生成したメソッドの使用例表示

 また、設定したメソッドのソースコードを自動生成するだけではなく、自動生成した後、そのメソッドの使い方を表示してくれます。

 特に、そのメソッドに要求される変数を列挙しますので、どのメソッドでどの変数が使われているかをいちいち調べる必要がなく、サクサクとプログラム開発を進めることができます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
自動生成されるソースコードについて

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

飯塚 友裕(イイヅカ トモヒロ)

Eclipse関連のソースコード自動生成プロダクトの開発者。ソースコード自動生成エンジンを他社に供給する技術エンジン会社「CROSSFIRE JAPAN, INC.」で、O/RマッピングツールやJavaによるSQLパーサーを開発。現在、NetBeans.org(米国)のパートナー。最近は、Alinous-Coreを利用したパッケージビジネスを行っています。SEO対策対応ECサイト構築パッケージOpen-ECAlinous-Coreのソースコードダウンロードhttp://sourceforge.jp/projects/alinous-core/はてなブログhttp://d.hatena.ne.jp/i-zuka/

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/339 2006/05/19 11:05

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング