【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として保持できます。








コメントを残す