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

Glassfishの暴走に関して

JavaEEのアプリケーションサーバーではglassfishを使っているんですが、 メモリをかなり食うのと、頻繁に暴走してIDEからの処理を一切受け付けなくなることが多いです。 まだまだ全然対処法がわ …

no image

データ構造の基礎知識 後編 木構造

データベースの学習をしていたときの復習です。 データ構造の基礎知識 前編 メモリとポインタ、配列と連結リスト データ構造の基礎知識 中編 ハッシュ 今回はもう少し複雑な「木構造」について考えてみます。 …

no image

アンチパターン データ分身の術+DBの不要な連携+バージョンアップ未テスト

今回のアンチパターンは主にデータ設計に関する部分。 Contents1 同一データの使用1.1 デメリット1.2 対策2 DBの不要な連携2.1 デメリット2.2 対策3 サーバーの移行やバージョンア …

no image

Postgresメモ(データベース、スキーマ、他pgadminなど)

postgresをちょこちょこ触っており、超基礎的な事に関してMySQLでは触れられていないネタなどについて。 以前のリンク Postgresの基礎(主にMySQLとの違いなど) Contents1 …

no image

小ネタ集

最近覚えた小ネタをのせていきます。 熟練のプログラマからすると当たり前のことが多いと思いますが・・・ Contents1 {}でスコープ限定2 リダイレクト:face-redirect=true3 H …