Wicket-DBの考察
こんにちは、id:s-ishigamiに紹介されたので、日記を書いてみます。
今日のお題は、WicketとDBの連携。
Wicketでは、FormにModelを渡すことで、Formの値が反映され、
逆に値の入ったObjectを渡すことで、Formに反映されます。
Modelの実体はHashMap
そこで、どのようにSQLを発行するかを考えてみました。
まずはページクラス。ページクラスは、ひたすら、HTMLの要素の
匿名インナークラスの生成に徹して、ロジックは他のクラスに書きます。
public class EmpMstPage extends WebPage { public EmpMstPage(){ //ロジックの生成 final EmpMstLogic logic = new EmpMstLogic(); //Modelの生成 EmpMstSql myModel = new EmpMstSql () //フォームの定義 Form frm = new Form("frm",myModel){ @Override protected void onSubmit() { logic.onFindClick(getModelObject()); } }; add(frm); }
ロジッククラスはこんな感じ
private class EmpMstLogic{ public void onFindClick(Object modelObject){ SqlBase model = (SqlBase)modelObject; model.getData(); //いろいろな処理を書く。 } }
public class EmpMstSql extends SqlModelBase{ public EmpMstSql(Object object){ super(object); } public void getData(DBManager db) throws SQLException{ ISimpleStatement sql = newSimpleStatement(db); sql.append("SELECT "); sql.append("emp_cd "); sql.append("FROM emp_mst "); sql.executeQuery(); } }