更新実行クラス
AbstractFormObjectをデータベースに保管するクラス。 wisdomx.logic.formtemplate.AbstractFormPersistanceを継承して作成します。

- 実行シーケンス

- 入力チェック　_validate()

- 登録メソッド　_insert()

- 更新メソッド　_update()

- 削除メソッド　_delete()

このクラスの役割は
AbstractFormObjectの項目のチェックを行いデータベースへの登録、更新、削除を行うこと
です。
実行シーケンス
AbstractFormObjectPersistance#execute()
利用クラスはAbstractFormObjectPersistance#execute()を実行、

1. #_prepare()の実行
2. AbstractFormObjectPersistance#setIgnoreValidate(true)が実行されていない場合
   #_valdate()が実行されます。
3. #_validate()の結果AbstractFormObject#isError()がtrueの場合
   処理を終了します。
4. AbstractFormObject#isInsert()がtrueのとき
   #_insert()が実行されます。
5. AbstractFormObject#isUpdate()がtrueのとき
   #_update)が実行されます。
6. AbstractFormObject#isDelete()がtrueのとき
   #_delete()が実行されます。
7. #_cleanup()の実行

各メソッドでAbstractFormObjectのデータベースへの処理ロジックを実装します。
入力チェック　_validate()
このメソッドはAbstractFormObjectの状態に関係なく実行されます。
protected void _validate() throws Exception {
StringChecker sc = new StringChecker();
int result = 0;
result += sc.checkNotEmpty(USERID, fo.getUserid(),fo);
result += sc.checkNotEmpty(USERNAME, fo.getUsername(),fo);
result += sc.checkNotEmpty(PASSWORD, fo.getPassword(),fo);
result += sc.checkNotEmpty(MAILADDRESS, fo.getMailaddress(),fo);
result += sc.checkNotEmpty(SEXKBN, fo.getSexkbn().getSelected(),fo);
result += sc.checkNotEmpty(CITYCD, fo.getCitycd().getSelected(),fo);
if (fo.isInsert() && StringUtil.notEmpty(fo.getUserid())) {
PreparedStatement ps = rh.getConnection().prepareStatement(SQL_SEL_USER);
ps.setString(1, fo.getUserid());
ResultSet rs = ps.executeQuery();
if (rs.next()) {
// USM0011E=入力されたユーザーIDはすでに登録されています。
fo.addErrorMessage(messageGenerator.getMessage("USM0011E"));
}
rs.close();
ps.close();
}
}
チェック処理の中でAbstractFormObject#addErrorMessag(Message)を呼び出すとそのAbstractFormObject#isError()がtrueになります。
追加されたMessageはAbstractFormObject#clearMessage()を実行するまで保持されます。
登録メソッド　_insert()
protected void _insert() throws Exception {
PreparedStatement ps = rh.getConnection().prepareStatement(SQL_INS_MUSER);
int x = 1;
ps.setString(x++, fo.getUserid());
ps.setString(x++, fo.getUsername());
ps.setString(x++, fo.getPassword());
ps.setString(x++, fo.getMailaddress());
ps.setString(x++, fo.getSexkbn().getSelected());
ps.setString(x++, fo.getCitycd().getSelected());
ps.executeUpdate();
ps.close();
insertHoddy();
}
更新メソッド　_update()
protected void _update() throws Exception {
PreparedStatement ps = rh.getConnection().prepareStatement(SQL_UPD_MUSER);
int x = 1;
ps.setString(x++, fo.getUsername());
ps.setString(x++, fo.getPassword());
ps.setString(x++, fo.getMailaddress());
ps.setString(x++, fo.getSexkbn().getSelected());
ps.setString(x++, fo.getCitycd().getSelected());
ps.setString(x++, fo.getUserid());
ps.executeUpdate();
ps.close();
deleteHobbdy();
insertHoddy();
}
削除メソッド　_delete()
protected void _delete() throws Exception {
PreparedStatement ps = rh.getConnection().prepareStatement(SQL_DEL_MUSER);
ps.setString(1, fo.getUserid());
ps.executeUpdate();
ps.close();
deleteHobbdy();
}