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

*概要比較 [#gecdc82f]
||DBFlute|S2Dao-CodeGen|
||DBFlute|S2Dao-CodeGen(0.2.x)|
|生成方法|テーブルスキーマから生成&br;(今後増やす予定はない)|テーブル定義書(CSV/Excel)から生成/テーブルスキーマから生成|
|動作環境|JDK1.5+Ant|JDK1.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)&br;C#{.NET2.0} + S2Dao.net-1.0.4 (+ S2Daoに必要なdll)|JDK1.4以降+S2Dao 1.0.31以降(+ S2Daoに必要なjar)|
|対応DB|axion, cloudscape, DB2, DB2/400, hypersonic, interbase, SQLServer,MySQL, Oracle, PostgreSQL, sapdb, sybase, firebird, Derby|DB2,Oracle,MySQL,MaxDB,HSQLDB,PostgreSQL,HSQLDB,Derby,H2,MS SQLServer|
|制限|- 列名に'-'(ハイフン)があるとコンパイルエラーになる。&br;- 全てのMethodにJavaDocコメント/C#コメントがあるわけではない。&br;  →現在ちょっとづつ作成中。|主キーの種別にSEQUENCEを指定した場合、SEQUENCE名称が主キーのプロパティ名で固定|
|対応DB|axion, cloudscape, DB2, DB2/400, hypersonic, interbase, SQLServer,MySQL, Oracle, PostgreSQL, sapdb, sybase, firebird, Derby|DB2,Oracle,MySQL,MaxDB,HSQLDB,PostgreSQL,Derby,H2,MS SQLServer|
|制限|- 列名に'-'(ハイフン)があるとコンパイルエラーになる。&br;- 全てのMethodにJavaDocコメント/C#コメントがあるわけではない。&br;  →現在ちょっとづつ作成中。|主キーの種別にSEQUENCEを指定した場合、SEQUENCE名称が主キーのプロパティ名で固定&br;-byte[]にマッピングされる型があると検索用のSQLが2WaySQLにならない|

*詳細比較 [#tdbfe76c]
|利用スタイル|<自動生成タイミング>&br;まず、テーブルスキーマからClassを自動生成。&br;その後、DBが変更される度に自動生成し直し。(イテレータブル)&br; ※ジェネレーションギャップの採用によりプロジェクト独自のMethodを追加可能&br;&br;<DBアクセス>&br;- 簡単なSQLは“ConditionBean”を利用&br;- 複雑なSQLはS2Daoの“外だしSQL”(SQLファイル)機能をそのまま利用&br;&br; ★“ConditionBean”と“外だしSQL”の2点のみ利用★&br;  →S2Daoの「SQL自動生成機能/Query-Annotation/S2Pager」などを&br;   利用する必要はない。(全てConditionBeanに代替される)|<自動生成タイミング>&br;まず、テーブル定義書からClassを自動生成。&br;その後、DBが変更される度に自動生成し直し。(イテレータブル)&br;&br;<DBアクセス>&br; - 簡単な処理はS2DaoのSQL自動生成+Query-Annotationを使用。&br;- FindDtoにより以下の検索条件(AND条件)をサポート。&br;一致/より大きい/以上/以下/未満/範囲指定/is null/is not null/複数の値(in)/文字列の前方一致/後方一致/任意項目、任意順でのorder by&br;-PagingはS2Pagerを使用|
|S2Dao拡張|<DaoMetaDataImplの継承拡張>&br;- S2Daoの“DTOによるSQL自動生成”機能を拡張(ConditionBean)&br;  →結合の選択・演算子の選択・基本的な副問合せ&br;   ・OrderBy指定・Paging検索・for-updateなど&br;- Daoにおいて、Method毎に戻り値のBeanを指定可能&br;  →JavaにおいてはS2Dao-1.1にてこの機能がサポートされるので&br;   いずれ拡張の必要はなくなる&br;&br;<ResultSetWrapperの継承拡張>&br;-LimitOffset(もしくはそれに相当するもの)がSupportされないDBでもPagingが可能|S2Daoの拡張は行ってない|
|その他特徴|<その他便利な機能>&br;- DatabaseのSchema情報を表示する'SchemaHTML'を自動生成する。&br;- S2Daoの“外だしSQL”(SQLファイル)から対応するEntityを自動生成する。&br;&br;<ConditionBean内部処理>&br;- Select句:IFコメントにより結合先テーブルを取捨選択&br;- From句:指定された結合先テーブルの結合条件を動的に作成&br;- Where句:指定された絞込み条件を動的に作成&br;  →「大量のIFコメントの判定処理」は発生しない。|-Eclipse上で各種インターフェースを実装したクラスを作成してdiconに登録することにより、独自フォーマットの定義書の使用・DDLの出力などの機能拡張が可能。&br;- テーブル定義書のマッピング定義によってn:1マッピングを指定したPackDao,PackDto,SQLファイルを作成する&br;|


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