最近の更新

2012年8月4日土曜日

DbUtilsのResultSetHandlerを使用し複数レコードをを任意の型のListで取得する方法

【目的】
DbUtilsのResultSetHandlerを使用し複数レコードをを任意の型のListで取得します。



【手順】
1.「Javaプロジェクトの作成方法」の手順で、「DbUtilsSample001」といプロジェクトを作成。
2.「PostgreSQLのJDBC Driver(Version 9.1-902 JDBC 4)をライブラリに設定する方法」の手順で、JDBCドライバをライブラリに設定します。
3.「DbUtils1.5をライブラリに設定する方法(Javaプロジェクト)」の手順で、「DbUtils」をライブラリに設定します。
4.「PostgreSQLのテーブルの作成方法」の手順で、テーブルを作成しておきます。
5.「PSqlGridでデータの追加方法」の手順で、データを追加しておきます。
6.「Javaクラスファイルの作成方法」の手順で、「Main.java」というクラスファイルを作成。
7.「Main.java」を以下の様に入力。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;

public class Main {
    private static ResultSetHandler<List<Company>> h = new ResultSetHandler<List<Company>>() {
        public List<Company> handle(ResultSet rs) throws SQLException {
            List<Company> companyList = new ArrayList<Company>();
            Company company = null;
            while (rs.next()) {
                company = new Company();
                company.setCompanyID(rs.getString(1));
                company.setCompanyName(rs.getString(2));
                companyList.add(company);
            }
            return companyList;
        }
    };

    public static void main(String[] args) {
        try {
            Class.forName("org.postgresql.Driver");
            System.out.println("JDBCドライバの読み込みに成功しました。");
        } catch (ClassNotFoundException e) {
            System.out.println("JDBCドライバの読み込みに失敗しました。");
            e.printStackTrace();
            return;
        }

        String url = "jdbc:postgresql://localhost/sampledb001?user=admin&password=";
        Connection conn = null;
        try {
            conn = DriverManager.getConnection(url);
            System.out.println("データベースとの接続に成功しました。");
        } catch (SQLException e) {
            System.out.println("データベースとの接続に失敗しました。");
            e.printStackTrace();
            return;
        }

        try {
            QueryRunner run = new QueryRunner();
            List<Company> companyList = run.query(conn, "SELECT CompanyID, CompanyName FROM MST_Company", h);
            for (int i = 0; i < companyList.size(); i++) {
                System.out.print(companyList.get(i).getCompanyID());
                System.out.print(",");
                System.out.print(companyList.get(i).getCompanyName());
                System.out.println("");
            }
        } catch (SQLException e) {
            System.out.println("SQLの実行に失敗しました。");
            e.printStackTrace();
        } finally {
            try {
                DbUtils.close(conn);
            } catch (SQLException e) {
                System.out.println("データベースとの切断に失敗しました。");
                e.printStackTrace();
            }
        }
    }
}

class Company {
    private String companyID;
    private String companyName;

    public Company() {}

    public String getCompanyID() {
        return companyID;
    }
    public void setCompanyID(String companyID) {
        this.companyID = companyID;
    }
    public String getCompanyName() {
        return companyName;
    }
    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }
}

8.「Ctrl+Shift+F」を押し、ソースコードをフォーマッティング、「Ctrl+S」でファイルを保存。
9.「Javaプロジェクトの実行方法」の手順で、「Main.java」を実行。
10.以下の様に表示されれば成功です。






























以上です。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

関連記事