レガシー環境のJavaで戦うための、SQL→Java変換器
背景
Javaで、複数行のSQLを、ソースに埋め込みたい場合があると思う。
Java15 からは テキストブロックという機能で、 複数行で文字列定数を定義するのが簡単にできるので、 あまり苦労しない(はず)
[Java]テキストブロックってかなり便利だね #java17 - Qiita
これができない、 古いJava環境で開発せざるをえない場合に使える、 JavaScriptで稼働するツールを作った。
つくったもの
情報漏洩にうるさい方々のために、HTML+CSS+JavaScriptのみで動作している。

使い方
select id from hogehoge where id='123';
を張り付けると
StringBuffer sb = new StringBuffer(); sb.append("select "); sb.append(" id "); sb.append("from hogehoge "); sb.append("where id='123'; ");
が出力される。
逆も用意している。
変数名はデフォルトsbにしているが、好きに変えられる。
技術詳細
今のJavaはどうか知らないが、昔のJavaは 文字列連結を
String hoge = "a" + "b" + "c";
のように、+を使って連結すると、すごく遅いと言われていた。
解決方法としては、 StringBufferを使えと言われていたので、 それを踏襲している。