AbstractFormObjectをデータベースに保管するクラス。 wisdomx.logic.formtemplate.AbstractFormPersistanceを継承して作成します。
このクラスの役割は
"AbstractFormObjectの項目のチェックを行いデータベースへの登録、更新、削除を行うこと"
です。
このメソッドは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()を実行するまで保持されます。
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();
}
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();
}
protected void _delete() throws Exception {
PreparedStatement ps = rh.getConnection().prepareStatement(SQL_DEL_MUSER);
ps.setString(1, fo.getUserid());
ps.executeUpdate();
ps.close();
deleteHobbdy();
}