skillup

技術ブログ

Database Java

DBUtils活用

投稿日:2015年8月26日 更新日:

普段は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以外のライブラリもあり)

DbUtilsのサンプル

「薄い」JavaのO/Rマッパーの紹介 – DbUtils、Persist、Butterfly Persistence

Mavenの環境で、Butterfly Persistenceを使うインストールと設定

[Java]iciqlで簡単DBアクセス[ORマッパー]

-Database, Java
-

執筆者:


comment

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

関連記事

no image

SQL サブクエリ

前回の問題をサブクエリを使って解きます。前年度の売上を出すのが一番難しいので、それを出す方法です。MySQLだとそもそも分析関数が存在しないので・・ [crayon-5f36c3f8342c44714 …

no image

BeanUtilsについて

以前このエントリーでも紹介しましたが、BeanUtils、思った以上に使い方が幅広いです。 Contents1 クラスからクラスに2 マップからクラスに3 クラスからマップ4 特定の値の取り出し5 リ …

no image

設定ファイルの置き場所

一般的にレベルの高いソースとは保守性が高いものを指します。特にWEB系ですと仕様変更がしょっちゅうなので変更があったときにいかに少ない工数で対応できるかが大切です。 保守性をあげる工夫はいろいろありま …

no image

BeanValidationの動的メッセージ出力について

JSF+ManagedBeanでは基本的にbeanValidationを使ってバリデーションを行い、エラーメッセージなどはプロパティファイルで管理するのが一般的です。 アノテーションなどを付与してあげ …

no image

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

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