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のエディタで入力します。上図は、外部キーを入力したところです。
例として、SELECT
文を実行するメソッドの例を示します。「TOY」テーブルと「CHLDREN」テーブルをJOIN
しています。
SQLに変数を埋め込んだスクリプト
前節の入力情報では、下図のようなSQLを実行します。
このビューは、CROSSFIRE O/Rが持っている機能の一つであり、実行するSQLを編集する際には、このビューを利用して全体でどのようなSQLを実行しているのか見ながら作業を進めることができます。
ここで、SQLの中に「$」で始まるものが出てきます。これは動的変数で、このSQLを実行するメソッドに対して入力した値に置き換えることが可能です。
リレーションも扱える
CROSSFIRE O/Rでは、外部キーによるリレーションも扱うことができます。テーブル情報の入力から、そのテーブルに対応したJavaBeanが自動的に作成されます。
public class Children { private Integer id; private String name; private Timestamp birthDay; // ↓自動的に参照されている状況を認識して加えられる private List ownerToyRefList = new LinkedList(); //(中略) }
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]で補完しながら入力していくことが可能です。
また、設定したメソッドのソースコードを自動生成するだけではなく、自動生成した後、そのメソッドの使い方を表示してくれます。
特に、そのメソッドに要求される変数を列挙しますので、どのメソッドでどの変数が使われているかをいちいち調べる必要がなく、サクサクとプログラム開発を進めることができます。