本サイトはプロモーション(広告)が含まれています。

【Java】DBで取得したデータ取得をMapに格納する方法

【Java】DBで取得したデータ取得をMapに格納する方法

以下の、DBで取得したデータをMapに格納する想定です

番号 名前
01 テスト太郎
02 テスト次郎
03 テスト三郎

Mapとして格納するために、キー値を番号・名前、値を番号・名前に設定されている値とします。

以下のように実装することでMapに格納することができます。

Connection con = null;
try {
// DB接続
    con = DriverManager.getConnection("jdbc:mysql://localhost/mysql", "ID", "PW");
    Statement stmt = con.createStatement();
    // SQL文
    String sql = "SELECT 番号,名前 FROM テスト";

    // 複数の取得結果を格納するためのMapのList
    ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>();
    // 取得結果用Map
    Map<String, String> map = new HashMap<>();
    // SQL実行
    ResultSet rs = stmt.executeQuery(sql);

    while(rs.next()){
        // 取得結果をMapに格納
        map.put("番号", rs.getString("番号"));
        map.put("名前", rs.getString("名前"));
        // MapをListに格納
        list.add(new HashMap<>(map));
    }
    // DBの取得結果の格納状態を確認
    System.out.println(list);
} finally{
    con.close();
}

// 実行結果
[{名前=テスト太郎, 番号=01}, {名前=テスト次郎, 番号=02}, {名前=テスト三郎, 番号=03}]

SQLの実行結果が1件のみの場合は、Mapにキー値、値をそれぞれセットすればよいです。

getString():指定した列を値を取得します

 getStringメソッドを使用して、取得したDBの列を順次格納していけばよいです。

 next()メソッドを使用してカーソルを現在の位置から順方向に1行移動し、次の行がない場合はFalseを返すので全行参照することが可能です。

 複数行ある場合は、ArrayList<Map<String, String>>にてMapを型に指定したListに格納することでDB結果をMapに格納し、Listとして保持できます。

Javaの記事一覧へ

PAGE TOP