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();
}
}