Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java中的结果集返回arraylist的arraylist_Java_Sql_Arraylist_Prepared Statement_Resultset - Fatal编程技术网

从java中的结果集返回arraylist的arraylist

从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

我用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<>();  // 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;
而(i
ResultSet 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");
    }