【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として保持できます。
コメントを残す