skillup

技術ブログ

Database Java

DBUtils活用

投稿日:

普段はJavaEEで開発を行っているのでデータベースへのアクセスはJPAを活用しています。

ただ、JavaEE環境だとglassfish経由でデータベースを動かしているので、glassfishを動かさずにデータベースへのアクセスをしたいときに、通常はアクセスできません。

そこで緊急的に直でデータベースにアクセスできる手法を探しました。

個人的な要望としては下記のような状態です。

  • JDBCは知っているのですが、もっとスマートにかけるほうほうをしりたい
  • デバッグなども簡単にできる
  • 通常のSQLであってもO/Rマッパーでもどちらでもよい。
  • なるべく設定ファイルなどを追加しないほうがいい
  • JPAでGlassfish経由でなく直にアクセスする方法はしっているが設定がめんどい&少し遅い

こんな方法をいろいろと考えていましたが、DBUtilsというライブラリが便利で、上記条件を満たしているので使うことに。

※似た名前でDBUnitsというものがありますがこれは違います。

インストール

例によって下記をpomに追加します。

http://mvnrepository.com/artifact/commons-dbutils/commons-dbutils/1.5

コード

  • selectでは型を指定し、SQLを入力すればOK
  • よくMap、List<Map>のデータをinsertしたいケースがあるので、これ用のメソッドを容易
  • updateというメソッドはSQLのinseert,update,delete全てを含みます。単純にSQLを投げればOK

バインドさせているものと、いないものがあったりとあまり統一性はないので(とりあえずテストデータのinsertと抽出ができればOKだったので)詳しく仕様を見たい方はリンク先を見てみてください。

リンク(DBUtils以外のライブラリもあり)

http://kazunori-kimura.blogspot.jp/2012/05/dbutils.html

http://d.hatena.ne.jp/Kishi/20081212/1229076102

http://wannabe-note.com/1554

http://lynn1985.blog.shinobi.jp/%E5%8B%89%E5%BC%B7%E3%83%A1%E3%83%A2/maven%E3%81%AE%E7%92%B0%E5%A2%83%E3%81%A7%E3%80%81butterfly%E3%80%80persistence%E3%82%92%E4%BD%BF%E3%81%86%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A8%E8%A8%AD%E5%AE%9A

http://dev.classmethod.jp/server-side/java/iciql/

-Database, Java
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

jenkinsのオートデプロイ

久々にJavaやりました。 Contents1 やりたいこと2 ハマりポイント2.1 Antでのjobの設定2.2 jenkinsでビルドできない2.3 jenkinsのオートデプロイ2.4 SSHで …

no image

サブクエリの使い方

以前も少し学習しましたが、今回からはサブクエリの扱い方です。特に異なった行の比較(年度計算など)に関して行われる自己結合をつかったものが非常に強力です。 例によってここを学習しています。 下記のような …

no image

正規表現(判定:置換:抽出)

Javaの正規表現を利用した置換、抽出について書きます。 Contents1 正規表現の基本ルール2 Javaでの正規表現の処理の流れ3 実処理3.1 判定3.2 抽出3.3 置換 正規表現の基本ルー …

no image

Javaのarraycopy

最近あまりJava自体には触っていないですが、資格の勉強をコツコツとすすめていることもあり、新たな発見もあります。 8ヶ月ぐらいJava書いていますが、arraycopyというメソッドをはじめてしりま …

no image

DBの構造について メモリとHDD

データベースについてまたまた学習中。 覚えておきたいポイントなど。 データを収めておくべき媒体では「記憶コスト(単位金額当たりの容量)」と「アクセス速度」の2つが重要なパラメータ メモリとHDDでは前 …