Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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 结果集到二维数组中_Java_Mysql_Arrays_Resultset - Fatal编程技术网

Java 结果集到二维数组中

Java 结果集到二维数组中,java,mysql,arrays,resultset,Java,Mysql,Arrays,Resultset,我刚刚做了一个mysql查询,它被放入一个名为result的resultset中 现在我希望它进入一个2d对象,我可以用它来显示查询结果 如果我应该做一个while循环,然后放入一个数组中,我不太确定如何做。 我已经通过out测试了结果中是否有内容。将其写入txt文件 ResultSet result = stmt.executeQuery(sql); 这是我得到的,我试过: int i =0; sqlresult = new String[result.getMetaData

我刚刚做了一个mysql查询,它被放入一个名为result的resultset中

现在我希望它进入一个2d对象,我可以用它来显示查询结果

如果我应该做一个while循环,然后放入一个数组中,我不太确定如何做。 我已经通过out测试了结果中是否有内容。将其写入txt文件

ResultSet result = stmt.executeQuery(sql);
这是我得到的,我试过:

int i =0;
        sqlresult = new String[result.getMetaData().getColumnCount()];
        while(result.next()){
            sqlresult[i] = result.getArray(sql);
            i++;
        }

但这是我一直得到的一个错误,它是唯一的1d数组。

我不确定您想要什么,但这段代码将从当前结果集中获取列值并将其存储在数组中

         while(result.next()){
             java.sql.Array columnVar = rs.getArray("ColumnName");
             String[] zips = (String[])columnVar.getArray();
        }

这将为您提供一个二维数据结构,作为一个列表,包含与结果集中的行一样多的元素,行中的每个列值都有字符串值

int nCol = result.getMetaData().getColumnCount();
List<String[]> table = new ArrayList<>();
while( result.next()) {
    String[] row = new String[nCol];
    for( int iCol = 1; iCol <= nCol; iCol++ ){
            Object obj = result.getObject( iCol );
            row[iCol-1] = (obj == null) ?null:obj.toString();
    }
    table.add( row );
}

// print result
for( String[] row: table ){
    for( String s: row ){
        System.out.print( " " + s );
    }
    System.out.println();
}
int-nCol=result.getMetaData().getColumnCount();
列表表=新的ArrayList();
while(result.next()){
字符串[]行=新字符串[nCol];

对于(int iCol=1;iCol,这会将整个结果集转换为二维对象数组

        Object[][] resultSet = new Object[rows][columns];
        int row = 0;
        while (result.next()) {
            for (int i = 0; i < columns; i++) {
                resultSet[row][i] = result.getObject(i+1);
            }
            row++;
        }
Object[][]resultSet=新对象[行][列];
int行=0;
while(result.next()){
对于(int i=0;i
您可以通过以下简单方式完成:

ResultSetMetaData metadata = Result.getMetaData();
numberOfColumns = metadata.getColumnCount();
ResultSetArray= new String[numberOfRows][numberOfColumns];
int i=0;
while (Result.next()) {

    for (int j = 0; j < numberOfColumns; j++) {
        ResultSetArray[i][j] = Result.getString(j+1);
    }
    i++;
}
ResultSetMetaData=Result.getMetaData();
numberOfColumns=metadata.getColumnCount();
ResultsTarray=新字符串[numberOfRows][numberOfColumns];
int i=0;
while(Result.next()){
对于(int j=0;j
我不知道为什么,但当我尝试此操作时,我会将引用放入数组表中。因此,当我对其进行sysout时,我会得到类似[Ljava.lang.String;@6487d5bd,…我做错了什么吗?这是意料之中的。你必须编写一个小循环来逐个打印行。谢谢..是的,我忘记了当它的2darray:)时我必须循环。)这假设你知道行数,不是吗?虽然这段代码可能会解决这个问题,但如何以及为什么解决这个问题会真正有助于提高你的文章质量,并可能导致更多的投票。请记住,你是在将来为读者回答这个问题,而不仅仅是现在提问的人。请回答以下问题:dd解释并说明适用的限制和假设。