高尚なるJava言語にはヒアドキュメントと言うLL言語にありがちな軟弱な機能など不要!
さて、ありません。どう頑張ってありません。ですので、アイデア出しです。
ソースコード上に全ての文字列を書く必要はありません。別のファイルにして読み込めば良いのです。しかし、別のファイルにしてしまうと一部だけ変数にして書き換えができません。そういうときはテンプレートエンジンを使うと良いでしょう。とあるSOの回答ではRythmがいいよとありましたが、何でもいいかと思います。今回はSQL文ですので、単にファイルにした方が良いでしょう(むしろ、そのようなテンプレートエンジンをSQL文に対して使うべきではありません。SQL文で動的に変わる部分は常にプレースホルダーを使うべきです)。特に静的なSQL定義を外部ファイルにしておくと、DB付属のコマンドで直接作成などができるようになるので便利です。
もしあなたが「ORMは悪だ」という信念の持ち主で無ければ、ORMを使った方が良いでしょう。ORMであればSQL文を(ほとんど)書く必要が無いため、長いSQL文をどうしようか悩むことはありません。ただ、生成されるSQLについて読める知識は必要です。また、パフォーマンスを出すためにORMでは実現できない複雑なSQL文を必要とする場合は、SQL文が依然として必要になります。
ストアドプロシージャとしてDB自体に組み込んでおけば、どんなに複雑なSQL文でも命令一つで呼び出せます。プログラミング側のコードが長くなることもありません。問題は、ストアドプロシージャの機能がDBによって違う、ストアドプロシージャ自体のバージョン管理がつらいと言うところでしょうか。
GroovyでもScalaでもKotlinでもみんなヒアドキュメント(複数行文字列)があります。
**一体なぜ、いつまでも古くさい仕様のJavaで書き続ける必要があるのでしょうか?**Javaなんて捨ててしまえば良いのです。太陽は沈みました。Java7はリリースが延期されたのにも関わらず、何も変わってませんでした。待ちに待ったJava8の新機能(Streamやラムダ式)は、欠陥だらけの期待外れでした。
もう、Javaを使い続ける理由はありません。過去の遺産は他のJavaVMで動作する言語でも使用できます。新しいコードをJavaで書くこと自体が時代遅れです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/26 02:02