从数据库中读取所有行并将它们放入 ArrayList - Java
Reading all rows from database and putting them into ArrayList - Java
我有下面的代码,
ArrayList<ArrayList<String>> outer = new ArrayList<ArrayList<String>>();
ArrayList<String> inner = new ArrayList<String>();
ResultSet rs = statement.executeQuery(sqlQuery);
ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();
while (rs.next()) {
for(int i=1; i<=columnsNumber; i++){
inner.add(rs.getString(i));
}
}
outer.add(inner);
return outer;
我得到的外部是这样的
[[100, 200, 300, 100, 200, 300]]
我想得到的是
[[100, 200, 300], [100, 200, 300]]
我希望每一行都是列表中的唯一项,但我得到的是列表中一项中所有行的列表。
我该怎么做?
有人可以帮我吗?
在 while
循环的每一步中,您必须用一个空列表重新初始化 inner
列表,并在该步骤执行之前将其添加到 outer
列表中完成:
while (rs.next()) {
inner = new ArrayList<String>();
for(int i=1; i<=columnsNumber; i++){
inner.add(rs.getString(i));
}
outer.add(inner);
}
为每条记录创建一个新的内部并将其添加到外部。
ArrayList<String> inner;
ResultSet rs = statement.executeQuery(sqlQuery);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
inner = new ArrayList<String>();
for(int i=1; i<=columnsNumber; i++){
inner.add(rs.getString(i));
}
outer.add(inner);
}
由于 outer
是一个列表列表,在 while
循环的每次迭代中,您需要:
- 重新初始化
inner
列表
- 填写
inner
列表
- 将此版本的
inner
列表存储在 outer
列表中。
我还会将 inner
声明保留在 while
循环中以限制其范围,如下所示:
List<List<String>> outer = new ArrayList<>();
ResultSet rs = statement.executeQuery(sqlQuery);
ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();
while (rs.next()) {
List<String> inner = new ArrayList<>();
for(int i = 1; i <= columnsNumber; i++) {
inner.add(rs.getString(i));
}
outer.add(inner);
}
return outer;
我有下面的代码,
ArrayList<ArrayList<String>> outer = new ArrayList<ArrayList<String>>();
ArrayList<String> inner = new ArrayList<String>();
ResultSet rs = statement.executeQuery(sqlQuery);
ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();
while (rs.next()) {
for(int i=1; i<=columnsNumber; i++){
inner.add(rs.getString(i));
}
}
outer.add(inner);
return outer;
我得到的外部是这样的
[[100, 200, 300, 100, 200, 300]]
我想得到的是
[[100, 200, 300], [100, 200, 300]]
我希望每一行都是列表中的唯一项,但我得到的是列表中一项中所有行的列表。
我该怎么做?
有人可以帮我吗?
在 while
循环的每一步中,您必须用一个空列表重新初始化 inner
列表,并在该步骤执行之前将其添加到 outer
列表中完成:
while (rs.next()) {
inner = new ArrayList<String>();
for(int i=1; i<=columnsNumber; i++){
inner.add(rs.getString(i));
}
outer.add(inner);
}
为每条记录创建一个新的内部并将其添加到外部。
ArrayList<String> inner;
ResultSet rs = statement.executeQuery(sqlQuery);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
inner = new ArrayList<String>();
for(int i=1; i<=columnsNumber; i++){
inner.add(rs.getString(i));
}
outer.add(inner);
}
由于 outer
是一个列表列表,在 while
循环的每次迭代中,您需要:
- 重新初始化
inner
列表 - 填写
inner
列表 - 将此版本的
inner
列表存储在outer
列表中。
我还会将 inner
声明保留在 while
循环中以限制其范围,如下所示:
List<List<String>> outer = new ArrayList<>();
ResultSet rs = statement.executeQuery(sqlQuery);
ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();
while (rs.next()) {
List<String> inner = new ArrayList<>();
for(int i = 1; i <= columnsNumber; i++) {
inner.add(rs.getString(i));
}
outer.add(inner);
}
return outer;