从java中的结果集返回arraylist的arraylist
我用java创建了一个数据库包装器类,并创建了一个名为从java中的结果集返回arraylist的arraylist,java,sql,arraylist,prepared-statement,resultset,Java,Sql,Arraylist,Prepared Statement,Resultset,我用java创建了一个数据库包装器类,并创建了一个名为fetchAll(query)的方法 我发现它很奇怪,而且该方法不返回所有列,它缺少1列,为什么 我怎样才能做到这一点 [ [1,name1,address1,age1,bday1], [2,name2,address2,age2,bday2], [3,name3,address3,age3,bday3] ] 像这样: List<List<String>> result = new ArrayList&l
fetchAll(query)
的方法
我发现它很奇怪,而且该方法不返回所有列,它缺少1列,为什么
我怎样才能做到这一点
[
[1,name1,address1,age1,bday1],
[2,name2,address2,age2,bday2],
[3,name3,address3,age3,bday3]
]
像这样:
List<List<String>> result = new ArrayList<>(); // List of list, one per row
...
while (resultset.next()) {
List<String> row = new ArrayList<>(numcols); // new list per row
int i = 1;
while (i <= numcols) { // don't skip the last column, use <=
row.add(resultset.getString(i++));
}
result.add(row); // add it to the result
}
List result=new ArrayList();//列表列表,每行一个
...
while(resultset.next()){
List row=new ArrayList(numcols);//每行新列表
int i=1;
而(iResultSet ResultSet=statement.executeQuery(sql);//来自数据库
int numcols=resultset.getMetaData().getColumnCount();
列表结果=新建ArrayList();
while(resultset.next()){
List row=new ArrayList(numcols);//每行新列表
例如(inti=1;我什么也没说就投了反对票。愚蠢的家伙。有什么原因可以解释为什么内部循环是while
而不是每个的吗?对于我个人来说,为了可读性,我更喜欢for loop
,但while
可能是有原因的。
[
[1,name1,address1,age1,bday1],
[2,name2,address2,age2,bday2],
[3,name3,address3,age3,bday3]
]
List<List<String>> result = new ArrayList<>(); // List of list, one per row
...
while (resultset.next()) {
List<String> row = new ArrayList<>(numcols); // new list per row
int i = 1;
while (i <= numcols) { // don't skip the last column, use <=
row.add(resultset.getString(i++));
}
result.add(row); // add it to the result
}
ResultSet resultset = statement.executeQuery(sql);//from DB
int numcols = resultset.getMetaData().getColumnCount();
List <List <String> > result = new ArrayList<>();
while (resultset.next()) {
List <String> row = new ArrayList<>(numcols); // new list per row
for (int i=1; i<= numcols; i++) { // don't skip the last column, use <=
row.add(resultset.getString(i));
System.out.print(resultset.getString(i) + "\t");
}
result.add(row); // add it to the result
System.out.print("\n");
}