java - 在Java中查询数据库后返回一个数组

标签 java sql-server jdbc

我必须查询一个 MSSQL 数据库,并且我希望查询结果以 Array 或 ArrayList 的形式返回。

我现在有这段代码,但它给出了一个错误。 我已连接到数据库,所以这不是问题。

public ArrayList<Array> queryResult(String q) throws SQLException {

   ArrayList<Array> array = new ArrayList<>();
   Statement statement = this.getConnection().createStatement();
   ResultSet rs = statement.executeQuery(q);

   while(rs.next()) {

      Array n = rs.getArray(rs.getRow());
      System.out.println(n);
      array.add(n);

   }
   return array;
}

出现以下错误

Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: This operation is not supported.
      at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
      at com.microsoft.sqlserver.jdbc.SQLServerResultSet.NotImplemented(SQLServerResultSet.java:750)
      at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getArray(SQLServerResultSet.java:2625)
      at server.Database.queryResult(Database.java:52)
      at server.Server.listen(Server.java:57)
      at server.Server.run(Server.java:34) at
      server.Server.<init>(Server.java:28) at
      server.Server.main(Server.java:94) Java Result: 1

最佳答案

getArray() 将当前行的特定列的值作为数组返回。看到这个 - http://docs.oracle.com/javase/6/docs/api/java/sql/ResultSet.html#getArray%28int%29

如果您想获取行值作为数组,那么您必须为此编写代码。

while (rs.next()){
     java.util.ArrayList alRowData = new java.util.ArrayList();
     java.sql.ResultSetMetaData rsmd = rs.getMetaData();
     int numberOfColumns = rsmd.getColumnCount();
     for(int columnIndex = 1; columnIndex <= numberOfColumns; columnIndex ++){
          alRowData.add(rs.getObject(columnIndex));
     }
     System.out.println(alRowData);
}

关于java - 在Java中查询数据库后返回一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10347148/

相关文章:

java - Jacoco 报告 0 类

java - 查找具有唯一 K 个字符的最长子字符串的代码不适用于所有输入

java - JDBC SQL Server 数据库迁移

asp.net - Entity Framework 可以生成从外键到父表中 GUID 的映射吗?

sql-server - 修改 Azure SQL 数据库中的文件最大大小

java - 无法在 Jboss 7.1.1 中创建 mysql 数据源

java - 无法连接到 Oracle DB,出现错误 java.sql.SQLException : Io exception: The Network Adapter could not establish the connection

java - 如何从文件中读取大的 clob 数据?

java - 如何使用 java 将 1 到多个参数发送到 Rest Api

oracle - 在 Quercus/Tomcat 上使用 Zend 并连接到 Oracle