以下方法返回多维数组。
public List<ArrayList<ArrayList<String>>> getData(String sql, List<String> columns) {
this.driver();
try {
Connection conn = DriverManager.getConnection(this.url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
List<ArrayList<ArrayList<String>>> result = new ArrayList<>();
while (rs.next()) {
ArrayList<ArrayList<String>> rows = new ArrayList<>();
for (String column : columns) {
ArrayList<String> col = new ArrayList<>();
col.add(column);
rows.add(col);
}
for (ArrayList<String> i : rows) {
i.add(rs.getString(i.toString().replaceAll("[\\[\\]]", "")));
}
result.add(rows);
}
return result;
}
catch (SQLException e) {
e.printStackTrace();
}
return null;
}
我使用以下方法运行此方法:
public List<ArrayList<ArrayList<String>>> getAll() {
Database database = new Database();
List<String> columns = Arrays.asList("comment", "name");
return database.getData("SELECT * FROM zt_productions.comments", columns);
}
返回看起来像这样:
[[[comment,Hello World],[name,Kitt]],[[comment,Something],[name,Someone]]]
我想获取值Hello World
。
我尝试过
for (ArrayList<ArrayList<String>> getRow : getAll()) {
for(ArrayList<String> getColumn : getRow) {
for (String getValue : getColumn) {
System.out.println(getValue);
}
}
}
但是它给了我所有的价值。