-Seasar2のHibernate対応 + S2Daoへの想い(2)
未来に使ってくれる人より、今使ってくれる人を大事にしたいため、 S2Daoを先にリリースします。(^^;
SQL文の外部化ですが、バインド変数や動的SQL文の生成などを考えると 生のSQL文をそのままXMLには記述できないと思います。 なんかツール(antなど)を作ってXMLから生のSQLをはかせ、そいつをSQL*Plusなどで実行する手もありますが、ちょっとめんどくさい。TapestryのSQL版として、SQL*Plusなどで直接実行できるが 実行時には動的に値が変わるなんてことができるとうれしい。そこで考えてみました。SELECT empno, ename FROM emp --S2 7788 -> ?{empno} WHERE empno = 7788のようにSQL文を記述します。SQL*Plusではそのまま実行できます。S2Daoが実行するときには、--S2コメント分を見つけると次の行の 該当する文字列をバインド変数に置き換えて、引数のempnoを バインドして実行します。
from ひがやすおの日記2004/03/19
恐縮です。SQLごりごり派が多数かはわかりませんが、リリース即使うという点では自信があります。
なるほど。SQLコメントでSQLデザイナーとプログラマーで分業をやるという。悪乗りしてTapestry的ならこっちか?
SELECT empno, ename FROM emp WHERE empno = /*S2*/7788/*?{empno}*/
とか?トークン内部の一部置き換えはできなくなっちゃいますけど。「--」コメントだと、まとめてやれるとうれしい。想像妄想膨らむS2Daoですね。
--S2 'masataka' -> ?{userid}, 'pass' -> ?{password}
このアイディア、前者のほうちょっと見通しがよろしくないという指摘ありつつテーブルに載ってるようです。よかったよかった。