CodeZine(コードジン)

特集ページ一覧

DBの値を自動でJavaオブジェクトに変換するライブラリ「DBUtils」のご紹介

目指せ、定時退社! スマートなエンジニアのためのお役立ちツール(2)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/02/05 14:00
目次

検索結果の列を取得する

 検索結果の任意の列の値を取得したいときは、ColumnListHandlerを使用します。このColumnListHandlerは、取得した列をJavaのObjectのListに変換して格納します。取得したい列の列名をColumnListHandlerの引数として渡します。次の例では、データベースに格納されたレコードのname列を全件取得しています。

値の取得イメージ
値の取得イメージ
検索結果の列の値を取得する(SelectBook.javaの抜粋)
public List<Object> getColumnList() throws SQLException  {

    ResultSetHandler<List<Object>> rs = new ColumnListHandler("name");
    List<Object> book = runner.query( "select name from book", rs);

    return book;
}

検索結果を配列として取得する

 ある条件にマッチするレコードが1件だけ検索されたときは、ArrayHandlerを使用します。このArrayHandlerは、データベースから取得した値をJavaのObjectに変換して格納します。変換されるObjectはデータベースの列のデータ型に応じたJavaのデータ型になります。SQLの実行結果が複数レコードある場合は、先頭の行が格納されます。

値の取得イメージ
値の取得イメージ
配列を取得する(SelectBook.javaの抜粋)
public Object[] getArray() throws SQLException {

    ResultSetHandler<Object[]> rs = new ArrayHandler();
    Object[] book = runner.query( "select id,name,price from book where id=\"b001\"", rs);

    return book;
}

 条件にマッチするデータの検索結果が複数レコードある場合はどうすればよいでしょうか?そのときは、ArrayHandlerではなく、ArrayListHandlerを使用します。このArrayListHandlerは、取得した値をJavaのObjectのListに変換して格納します。

値の取得イメージ
値の取得イメージ
配列を複数取得する(SelectBook.javaの抜粋)
public List<Object[]> getArrayList() throws  SQLException {

    ResultSetHandler<List<Object[]>> rs = new ArrayListHandler();
    List<Object[]> book = runner.query( "select id,name,price from book", rs);

    return book;
}

列名をキーとするMapとして取得する

 データベースから取得した値は、列名とあわせて取り扱うことが便利なときもあります。そんなときは、MapHandlerを使用します。このMapHandlerは、データベースから取得した値を、列名をキー、値をJavaのObjectとするMAPに変換して格納します。

値の取得イメージ
値の取得イメージ
列名をキーとするMapとして取得する(SelectBook.javaの抜粋)
public Map<String,Object> getMap() throws SQLException {

    ResultSetHandler<Map<String,Object>> rs = new MapHandler();
    Map<String,Object> book = runner.query( "select id,name,price from book where id=\"b001\"", rs);

    return book;
}

 ある条件にマッチするデータの検索結果が複数レコードある場合はどうすればよいでしょうか? そのときは、MapHandlerではなく、MapListHandlerを使用します。

値の取得イメージ
値の取得イメージ
列名をキーとするMapを複数取得する(SelectBook.javaの抜粋)
public List<Map<String,Object>> getMapList() throws SQLException {

    ResultSetHandler<List<Map<String,Object>>> rs = new MapListHandler();
    List<Map<String,Object>> book = runner.query( "select id,name,price from book", rs);

    return book;
}

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:目指せ、定時退社! スマートなエンジニアのためのお役立ちツール

著者プロフィール

  • WINGSプロジェクト 阿佐 志保(アサ シホ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5