更新SQLの自動生成
S2Daoのうりの1つは、2Way SQLですが、更新のSQLについては、
Beanの定義から自動生成しようと思ってます。
デフォルトだとBeanのクラス名をテーブル名、
プロパティ名をカラム名とみなします。
プライマリーキーの情報は、JDBCのメタデータより取得します。
テーブルに存在しないプロパティは無視されます。
例えば、Empクラスにdnameプロパティがあったとしても無視されます。
クラス名がテーブル名と異なる場合はどうするのか。
XML、AttributeCompiler、XDocletを使うのは面倒です。
そこで登場するのが、fieldメタデータ
クラスに
と定義しておくだけです。
private static final String TABLE = "emp";
同様にemployeeNoプロパティのカラム名がempnoの場合は、
のように定義します。
private static final String EMPLOYEENO_COLUMN = "empno";
排他制御としては、VersionNoパターンをサポートします。
versionNoという名前のプロパティを定義しておけば、
VersionNoによる排他制御と更新時のカウントアップを自動的に行います。
あとは、S2Dao#insert(Object),update(Object),delete(Object)
の引数にBeanを渡すだけです。