Java-এ MySQL টেবিল থেকে ডেটা পড়ে ArrayList<ArrayList<String>> (নেস্টেড লিস্ট) স্ট্রাকচারে রাখা যায়। প্রতিটি রো একটি ইনার লিস্ট, সব রো মিলে আউটার লিস্ট।
টেবিল ও ডেটা
mysql> CREATE TABLE demo10 (
-> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> name VARCHAR(20)
-> );
Query OK, 0 rows affected (2.19 sec)
mysql> INSERT INTO demo10 (name) VALUES ('John'), ('Bob'), ('David');
mysql> SELECT * FROM demo10; +----+-------+ | id | name | +----+-------+ | 1 | John | | 2 | Bob | | 3 | David | +----+-------+
জাভা কোড
import java.sql.*;
import java.util.ArrayList;
public class ListInListDemo {
public static void main(String[] args) {
Connection con = null;
Statement stmt = null;
try {
ArrayList> outer = new ArrayList<>();
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/sampledatabase", "root", "123456");
stmt = con.createStatement();
String sql = "SELECT * FROM demo10";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
ArrayList inner = new ArrayList<>();
inner.add(rs.getString("name"));
outer.add(inner);
}
System.out.println("The names are as follows:");
for (int i = 0; i < outer.size(); i++) {
System.out.println(outer.get(i));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
আউটপুট
The names are as follows: [John] [Bob] [David]
সুপারিশ: রিয়েল অ্যাপ্লিকেশনে কানেকশন পুল (HikariCP), try-with-resources, এবং PreparedStatement ব্যবহার করুন।