Wicket-DBの考察

こんにちは、id:s-ishigamiに紹介されたので、日記を書いてみます。

今日のお題は、WicketとDBの連携。

Wicketでは、FormにModelを渡すことで、Formの値が反映され、
逆に値の入ったObjectを渡すことで、Formに反映されます。

Modelの実体はHashMapでOKなようです。
そこで、どのように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();

              //いろいろな処理を書く。
		}

	}

SQLクラスの実装をフレームワークにあわせて変更

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