《Struts》
■ このスレッドは過去ログ倉庫に格納されています
003220
NGNGSQLのサポートはいろいろ考えたんだけど、かなりシンプルな姿に落ち着きました。
JDBCでめんどくさいのってSQLを文字列リテラルで扱わなきゃいけないのと、
結果セットからいちいち列を取得してビーンに反映させる部分なんで、
その部分を簡単に扱えるようにしただけです。
最初はエンティティとリレーションを定義して・・・って感じで考えてたんだけど、
DB毎に構文違ったりするし、条件なんかは逆にわかりにくくなりそうだったんで。
<query name="emp.select" type="test.Employee">
<column name="ename" property="emoloyeeName" />
<column name="hiredate" property="hireDate" />
SELECT ename, hiredate FROM emp WHERE empno = :empno $condition
</query>
実行時にパラメータを渡すことで、:empnoは?に、$conditionはSQL文に
展開して動的に条件を追加したりできるって感じです。で、SQL投げると
指定したクラスのインスタンスをコレクションに入れて返してくれる、と。
トランザクション管理は、ビジネスロジック部分の呼び出しを完全に包める
構造になってるので、フリーのJTS実装を使ってEJBもどきをしてます。
■ このスレッドは過去ログ倉庫に格納されています