[[Open棟梁>https://github.com/OpenTouryoProject]] wiki -[[戻る>自動生成ツール]] * 目次 [#h170136f] #contents *概要 [#la7cf7e5] DBスキーマ情報からDao/SQLを生成します。 -DBスキーマ情報から、テーブル・ビューに対する、CRUD処理のDao/SQLを100%自動生成します。 --生成されたクラスの処理は、[[動的パラメタライズド・クエリ]]を活用しています。 --この自動生成+部品化による重複開発防止効果により、生産性/品質/保守性が向上します。 -また、実装漏れを起こしやすいWebアプリケーションのタイムスタンプ楽観排他処理も生成されます。 *生成の仕組み [#i776d3e5] -自動生成の前提情報として、DBスキーマ情報のみ使用します。Excel設計書は使用しません。 -D層自動生成の仕組みは以下のようになっています。 --最初にDBスキーマ情報から、D層定義情報を生成します。 --次にD層定義情報を元に、Dao・SQLファイルを生成します。 #ref(dgen_s.png,left,nowrap,D層自動生成ツール1) *生成されたDaoの処理 [#p3fd689b] -作成したDao・SQL ファイルは、テーブル・ビューに対する、 --静的な検索条件を使用した処理(主キーを指定したレコード単位のCRUD 処理) --動的な検索条件を使用した処理(条件検索のデータ セット単位のデータ アクセス処理) >を実行可能です。 -また、Insert、Updateの対象列を動的に変更することも可能です。 #ref(gendao_s.png,left,nowrap,D層自動生成ツール2) *ツールのUIの補足説明 [#gfe3040c] **Like検索設定(ODP.NET) [#hda4153b] Oracleデータベース(ODP.NET)使用時のLike検索を自動生成するオプションです。 ***設定 [#d314d3fe] -エスケープ文字~ エスケープ文字として使用する文字を指定します。 -NCHAR、NVARCHAR2、NCLOBの場合 --これは、以下に対応した実装です。 >[Oracle] LIKE 検索では全角の'%'、'_'も特殊文字として扱われる?|Archive Redo Blog~ http://ameblo.jp/archive-redo-blog/entry-10033356201.html --必要に応じて、以下を設定します。 ---LIKE記号~ LIKE記号(LIKE、LIKECなど)を選択できます。 ---エスケープ文字をTO_CHAR~ ORA-01425が発生する場合はチェックします。 **DTOを生成する。 [#ye04679b] DTO(Entity (POCO)、型付きデータセット)を自動生成するオプションです。 ***用語 [#xcd7fe56] -DTO~ "Entity (POCO)" と "型付きデータセット"の双方を指します。 -"Entity (POCO)"~ Javaで言う、POJOスタイルのBeanです。 -型付きデータセット~ XSDによって生成される型付のDataSetです。 -参考 --【JavaBeans】BeanとDTOとEntityとVOとFormの違いって何?~ (What is the difference between VO and DTO and Entity and Bean and Form?)~ Javaプログラマーのはしくれダイアリー~ http://yyyank.blogspot.jp/2013/07/javabeansbeandtoentityvoformwhat-is.html --java - Difference between DTO, VO, POJO, JavaBeans? - Stack Overflow~ http://stackoverflow.com/questions/1612334/difference-between-dto-vo-pojo-javabeans ***設定 [#d5452e77] 以下のチェック ボックスでフラグをオン・オフします。~ フラグの状態に合わせてプログラムが出力を決定します。 -"Only DTO" チェック ボックス --DTOだけを生成します(Dao、SQLを生成しません)。 --DTOだけを生成したい場合にチェックして下さい。 -"Entity (POCO)" チェック ボックス --Entity (POCO)を生成します。 --合わせてDao、SQLを生成します。 -"型付きデータセット" チェック ボックス --型付きデータセットを生成します。 --合わせてDao、SQLを生成します。 **テーブルメンテナンス画面を自動生成する。 [#q9a14434] テーブルメンテナンス画面を自動生成するオプションです。 ***設定 [#e5bfd947] 以下のチェック ボックスでフラグをオン・オフします。~ フラグの状態に合わせてプログラムが出力を決定します。 -テーブルメンテナンス画面のみ生成します。(Dao, SQL, DTOは生成しません)チェック ボックス --テーブルメンテナンス画面のみを生成します。 --合わせてDao、SQL、若しくはDTOは生成しません。 -テーブルメンテナンス画面を生成します。チェック ボックス --テーブルメンテナンス画面を生成します。 --合わせてDao、SQL、若しくはDTOを生成します。 *参考 [#fbad438c] **SlideShare [#tacb01ad] http://www.slideshare.net/daisukenishino/open-0150/11