このページは、DBFlute?S2Dao-CodeGenの機能比較の一覧ページです。

概要比較

DBFluteS2Dao-CodeGen
生成方法テーブルスキーマから生成
(今後増やす予定はない)
テーブル定義書(CSV/Excel)から生成/テーブルスキーマから生成
動作環境JDK1.5+AntJDK1.5+Ant
ターゲット言語Java,C#Java
生成方法環境変数・プロパティファイルを設定後、バッチファイルを実行して生成テーブル定義書を記述またはテーブルを作成後、diconファイルを設定してAntタスクを実行して生成
生成物Dao,Entity,ConditionBean,Behavior,'dao.dicon',その他Dao,Dto,PackDto,PackDao,FindDto,SQLファイル,'alldao.dicon',DDL(DerbyとH2のみ)
生成したJavaソースの動作環境Java{JDK1.4/1.5} + S2Dao-1.0.35/36/37/38/39/40/41 (+ S2Daoに必要なjar)
C#{.NET2.0} + S2Dao.net-1.0.4 (+ S2Daoに必要なdll)
JDK1.4以降+S2Dao 1.0.31以降(+ S2Daoに必要なjar)
対応DBaxion, cloudscape, DB2, DB2/400, hypersonic, interbase, SQLServer,MySQL, Oracle, PostgreSQL, sapdb, sybase, firebird, DerbyDB2,Oracle,MySQL,MaxDB,HSQLDB,PostgreSQL,HSQLDB,Derby,H2,MS SQLServer
制限- 列名に'-'(ハイフン)があるとコンパイルエラーになる。
- 全てのMethodにJavaDocコメント/C#コメントがあるわけではない。
  →現在ちょっとづつ作成中。
主キーの種別にSEQUENCEを指定した場合、SEQUENCE名称が主キーのプロパティ名で固定

詳細比較

利用スタイル<自動生成タイミング>
まず、テーブルスキーマからClassを自動生成。
その後、DBが変更される度に自動生成し直し。(イテレータブル)
 ※ジェネレーションギャップの採用によりプロジェクト独自のMethodを追加可能

<DBアクセス>
- 簡単なSQLは“ConditionBean”を利用
- 複雑なSQLはS2Daoの“外だしSQL”(SQLファイル)機能をそのまま利用

 ★“ConditionBean”と“外だしSQL”の2点のみ利用★
  →S2Daoの「SQL自動生成機能/Query-Annotation/S2Pager」などを
   利用する必要はない。(全てConditionBeanに代替される)
<自動生成タイミング>
まず、テーブル定義書からClassを自動生成。
その後、DBが変更される度に自動生成し直し。(イテレータブル)

<DBアクセス>
 - 簡単な処理はS2DaoのSQL自動生成+Query-Annotationを使用。
- FindDtoにより以下の検索条件(AND条件)をサポート。
一致/より大きい/以上/以下/未満/範囲指定/is null/is not null/複数の値(in)/文字列の前方一致/後方一致/任意項目、任意順でのorder by
-PagingはS2Pagerを使用
S2Dao拡張<DaoMetaDataImplの継承拡張>
- S2Daoの“DTOによるSQL自動生成”機能を拡張(ConditionBean)
  →結合の選択・演算子の選択・基本的な副問合せ
   ・OrderBy指定・Paging検索・for-updateなど
- Daoにおいて、Method毎に戻り値のBeanを指定可能
  →JavaにおいてはS2Dao-1.1にてこの機能がサポートされるので
   いずれ拡張の必要はなくなる

<ResultSetWrapperの継承拡張>
-LimitOffset(もしくはそれに相当するもの)がSupportされないDBでもPagingが可能
S2Daoの拡張は行ってない
その他特徴<その他便利な機能>
- DatabaseのSchema情報を表示する'SchemaHTML'を自動生成する。
- S2Daoの“外だしSQL”(SQLファイル)から対応するEntityを自動生成する。

<ConditionBean内部処理>
- Select句:IFコメントにより結合先テーブルを取捨選択
- From句:指定された結合先テーブルの結合条件を動的に作成
- Where句:指定された絞込み条件を動的に作成
  →「大量のIFコメントの判定処理」は発生しない。
-Eclipse上で各種インターフェースを実装したクラスを作成してdiconに登録することにより、独自フォーマットの定義書の使用・DDLの出力などの機能拡張が可能。
- テーブル定義書のマッピング定義によってn:1マッピングを指定したPackDao,PackDto,SQLファイルを作成する

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS