การอ่านข้อมูลจาก MySQL ไปยัง Nested ArrayList ใน Java
ใช้ ArrayList เพื่อเก็บข้อมูลหลายคอลัมน์หลายแถว
โครงสร้างตาราง
CREATE TABLE demo10 (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20)
);
INSERT INTO demo10 (name) VALUES ('John'), ('Bob'), ('David');
โค้ด Java
import java.sql.*;
import java.util.ArrayList;
public class ListInListDemo {
public static void main(String[] args) {
ArrayList> outer = new ArrayList<>();
try (Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/sampledatabase", "root", "123456");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM demo10")) {
while (rs.next()) {
ArrayList inner = new ArrayList<>();
inner.add(rs.getString("name"));
outer.add(inner);
}
System.out.println("The names are as follows:");
for (ArrayList row : outer) {
System.out.println(row);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
ผลลัพธ์
The names are as follows:
[John]
[Bob]
[David]
แนวทางปฏิบัติที่ดีกว่า: สร้าง Class (POJO/Entity) แทนการใช้ ArrayList ซ้อนกัน เพื่อ Type Safety และความเข้าใจง่าย
public class User {
private int id;
private String name;
// getters, setters
}