「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>自動生成ツール]]

* 目次 [#h170136f]
#contents

*概要 [#la7cf7e5]
-DBスキーマ情報からDao/SQLを生成します。

--DBスキーマ情報から、テーブル・ビューに対する、CRUD処理のDao/SQLを100%自動生成します。
---生成されたクラスの処理は、[[動的パラメタライズド・クエリ]]を活用しています。
---この自動生成+部品化による重複開発防止効果により、生産性/品質/保守性が向上します。

--また、実装漏れを起こしやすいWebアプリケーションのタイムスタンプ楽観排他処理も生成されます。

-www.slideshare.net
--https://www.slideshare.net/daisukenishino/open-0150/12
--https://www.slideshare.net/daisukenishino/open-0150/13

*生成の仕組み [#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>http://www.slideshare.net/daisukenishino/open-0150/11]] [#tacb01ad]

**[[自動生成Dao性能対策]] [#tdd25853]

**[[自動生成Daoのパラメタ属性指定]] [#xfda82fd]

**[[Dao 自動生成のサンプル>https://gist.github.com/daisukenishino2/ccf8c5555f7f3e94bece98aa76b3cc0a]] [#dc5ac573]

IP:202.246.252.103 TIME:"2020-06-22 (月) 10:29:03" REFERER:"https://opentouryo.osscons.jp/index.php?cmd=edit&page=D%E5%B1%A4%E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90%E3%83%84%E3%83%BC%E3%83%AB" USER_AGENT:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36"

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS