JavaのJdbcManagerでSQL文を楽々作成!Listと組み合わせてクエリ制御する方法!
今日は久々にJavaの開発をやりました。
学生時代の頃は、アプリ開発などはほとんどJavaでやっていたので、
付き合いは他のプログラミング言語と比べ長いですね。
しかし、自宅でも会社でもウェブサイト制作が主体となっていたため、
最近はPHPやJavaScript、jQueryなどが中心になっていましたね。
イントラマートの開発でJava使っています!
会社のワークフローシステムが「イントラマート」なんですよ。
たぶん結構、知名度高いと思います。
ワークフローシステム業界ではトップの業務ツールで、評価も高いです。
主に、スクリプト開発とJava開発があるんですが、
今回はJava開発でデータベースを扱ったプログラムを作っていました。
というのは、うちの会社、まだこのイントラマート展開できていないんですよね。
開発環境構築を簡易にやれる方法もやっと今日見つかったばかりだし、本当にこれから。
JavaのJdbcManagerが素晴らしく便利!
Javaのプログラム作っていた時に思ったこと。
JdbcManagerがとっても便利であることに気が付きました。
取得したデータベースのテーブルをDtoクラスに格納したり、取り出したりと
JdbcManagerを使うだけで簡単にテーブルの操作が行えます。
このJdbcManagerで便利であると思った点を順番にご紹介していきますよ!
SQLの構文を句ごとにメソッド指定できる!
SQLの構文って複雑になるほど、長くなりますよね。
長いと見づらいですし、なによりもわかりにくいものです。
JdbcManagerでは、SQLの構文を直接使わずにメソッドに引数をセットして、
SQL文に変換してくれるという機能があります。
1 2 3 4 5 | List<User> results = jdbcManager.from(User.class) .join("account") .where("id in (? , ?)", 20, 50) .orderBy("name") .getResultList(); |
この例ではUser.class(DTO)に格納済みのテーブルにaccountテーブル(DB側)のテーブルを結合し、
WHEREメソッドで条件指定して、その結果をList(DTO)の構造で取得しています。
このような感じで、句ごとをメソッド指定できるので、クエリが見やすく、メンテナンスし易いですね。
純粋にSQL文でクエリに発行するやり方!
以下はDTOのクラスに対してSQL文で取得した値を格納するやり方です。
一番標準的なやり方ですね
1 2 3 4 5 6 7 8 | List<User> results = jdbcManager.selectBySql(User.class, "SELECT * " + "FROM user " + "WHERE " + " user_cd = ? AND " + " age = ?", 'sample', 20) .getResultList(); |
一番単純だけど、クエリのコード長が長いと見づらい。
この程度で済むならまだいいけど、これが膨大な量になると、メンテナンスが大変。
これを解消するなら、やっぱりクエリを別ファイルで指定するやり方だ。
別ファイルからクエリを参照して実行!
拡張sqlファイルにSQL文を追記し、そのファイルを呼び出して、JdbcManagerで処理するやり方。
1 2 3 4 5 | List<User> results = jdbcManager.selectBySqlFile( User.class, "/jp/co/sample/src/entity/sql/get_user.sql", "U001" ).getResultList(); |
こっちのほうが、SQL文をだらだら書くよりはいいよね。
ファイルを管理するだけだから、簡単だけど、毎回クエリをファイル化していたら、
ファイル数が肥大化してしまうのが難点かな。
まあ、これら3つを組み合わせて、時と場合に応じて使い分けることが大切やね。
最新記事 by よっき (全て見る)
- 「圧着」と「圧接」の違い!コネクタを使った効率的な配線作業! - 2019年10月26日
- 夏の暑さ対策は大丈夫?冷却性能抜群のおすすめCPUクーラー!メモリに干渉しない最強の商品を紹介! - 2018年5月1日
- 自作PC弐号機のケースを換装!SilverStone製のミニタワーで冷却性とかっこよさを追求! - 2018年3月11日
スポンサードリンク