DAOコンポーネント生成機能 - OPEN INTRA-MART

Download Report

Transcript DAOコンポーネント生成機能 - OPEN INTRA-MART

はい。
少し能書きタイム。
今日は笑いを取りに行かない方向で
話をしたいと思います。
e Builder Ver7.2 を6月末にリリース!!
e Builder Ver7.2 を6月末にリリース!!
ご迷惑をおかけしました…
e Builder Ver.7.2ではたくさんの機能が増えました!!








DAOコンポーネント生成機能
データディクショナリによるデータの一元管理
WebService対応
バッチ処理対応
コンポーネントへのバリデーション強化
画面イベント処理定義機能
画面モックアップ作成機能
設計書フォーマットの種類の追加

etc…
e Builder Ver.7.2ではたくさんの機能が増えました!!








DAOコンポーネント生成機能
データディクショナリによるデータの一元管理
WebService対応
バッチ処理対応
コンポーネントへのバリデーション強化
画面イベント処理定義機能
画面モックアップ作成機能
設計書フォーマットの種類の追加

etc…
本日のお題
e Builder Ver.7.2の
DAO生成機能の魅力を
開発の一端を担った(と思っている)
私がご紹介!!できればいいな…
What’s the concept of the DAO Component?
What’s the concept of the DAO Component?
この部分の話
What’s the concept of the DAO Component?
e Builder Ver.7.2で利用出来るDAOコンポーネントのコンセプト
1.
2.
3.
4.
SQLの作成とマッピングだけで設定ファイル・DAOインターフェース・
DAO実装クラスまで生成。
簡単なDAOはテーブル構成(DB設計)から自動的に生成。
JavaからSQLへのパラメータのset、ResultSetからModelクラスへの
マッピングも自動生成。
Javaデータ型とSQLタイプが異なっても気にする必要なし。
データ情報、つまりプロジェクト内のデータを「データディクショナリ」で
一括管理。
What’s the advantage of the DAO Component?
Q. SQLからDAOを開発するイメージって?結局手間が多いんでしょ?
A. DAOコンポーネントの情報設定から3ステップでソースコードを生成します!!
1. SQLタイプ(SELECT/INSERT/UPDATE/DELETE)の選択
(場合のよってはデータソースの選択も必要)
2. SQLの作成とSQLテスト
3. DAOのインターフェースの設定
What’s the advantage of the DAO Component?
Q. SQLからDAOを開発するっていっても、いろいろ作らなきゃいけなそう…。
例えば、通常のselect文用とその件数を取得するためのメソッドとか…。
A. 1つのDAOコンポーネントだけで以下のものを全て生成します。

入力値の実行値NULL時オプション (動的SQL)

「エラー」、「is null置換」、「条件削除」、「固定値指定」


SELECTのDAOは「1人4役」

「全件取得」、「フェッチ取得」、「件数取得」、「存在チェック」


実行値の条件に合わせて、書き換えた適切なSQLを勝手にくれたり
設定したデフォルト値を入れてくれます。
全件取得用、件数取得用のDAOコンポーネントとか造らなくても大丈夫です。
SELECTのDAOからDTOが自動生成

SQLのSELECT句を解析して、必要な場合は自動生成

DAOのResultSetを取得するためのModelクラスも自動生成します。
What’s the advantage of the DAO Component?
Q. 簡単なSQLとかも全部自分で作らなきゃいけないんですか。
A. (ご希望に添えるかどうかわかりませんが)データベースの定義情報さえあれば、
以下のDAOは自動生成します。

各テーブルに対して「基本DAO」が自動生成されます

全件取得DAO
主キー条件による1件取得DAO
登録DAO
主キー条件による1件更新DAO
全件削除DAO

主キー条件による1件削除DAO




[注意] 基本DAOは編集することができません…。
The mechanism of the DAO Component?
Q. SQLからどうやってDAOのソースを作っているか?
A. ↓の用な感じ
◯文法
SQL開発
Parserさん
頑張った
Parserさん頑張る
・Input情報取得
・Output情報取得
・Order情報取得
・データベース設計に
定義があるか確認
調べ物
終了
データディクショナリ
・カラムに紐づく変数
を割り当てる
・必要な場合DTOを作る
・不整合のチェック
Null時置換用SQL生成
・実行可能性のある
SQLを作り上げる。
The mechanism of the DAO Component?
Q. SQLからどうやってDAOのソースを作っているか?
A. ↓の用な感じ
◯文法
SQL開発
Parserさん
頑張った
Parserさん頑張る
・Input情報取得
・Output情報取得
・Order情報取得
・データベース設計に
定義があるか確認
調べ物
終了
データディクショナリ
・カラムに紐づく変数
を割り当てる
・必要な場合DTOを作る
・不整合のチェック
これでDAOコンポーネントが完成!!
Null時置換用SQL生成
・実行可能性のある
SQLを作り上げる。
時間があれば、実物をご覧いただきたく思います。
Improvement in the future
まだまだたくさん有ります…
1.
直感的な操作ができるようにしたい。(隠し扉みたいな機能がいくつか…)
2.
インターフェース決め打ちでDAOを作りたい(どこまでのSQLを保証する?)
3.
仮想表(dual)を使えるようにしたい(今、dualをテーブル定義しないと無理)
4.
eclipse のプラグインであるDTPをもっとうまく活用したい!!
等々…挙げたらキリがない…
これで終わります。
出来れば次はeclipse の
便利プラグインの話をしたい…
ご清聴ありがとうございました!!