ストアドプロシージャを呼び出す機能を自社開発のフレームワークに本日は追加しました。
StoredProcedureとクラス名を付けました。(そのまんま)
現在稼働中のシステムへの機能追加ですが、オブジェクト指向が崩れるためアプリケーションアーキテクチャーとしては業務用のストアドプロシージャは元々許可していません。
しかしRDBMSが標準で持っているマテリアライズドビューをリフレッシュするプロシージャを呼び出したいとの要求が上がったのでクラスを追加しました。
StoredProcedure procedure = new StoredProcedure();
procedure.call("dbms.mview.refresh('VIEW_NAME', 'C',・・・・)");
と書くだけです。
RDBへのConnectionはThreadLocal内で持っているため業務アプリケーションは意識する必要がありません。
{CALL }というおまじない的な修飾はクラスがやってあげるので純粋な呼び出し文字列だけを書けばいいことになります。
プロシージャーがOUTパラメーターを持っている場合は次の形で取得できます。
for (ResultSet result : procedure) {
String x = result.getString(1);
略
}
StoredProcedureクラスはIterable<ResultSet>をimplementsしているため複数行のOUT(ResultSetになって来る)もforEachループで扱えます。
オブジェクト指向を使いこなせるとこのような便利な実装が出来ます。
株式会社つつじでは、高度なプログラミング技術を駆使した大規模なシステム開発に挑戦することができます。現在、プログラマー(未経験可)と経験者エンジニアを絶賛募集中!ご興味のある方がいらっしゃいましたら、下記募集よりお気軽にエントリーください!まずはカジュアル面談にてお会いできるのを楽しみにしています。