微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我必须查询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);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐