Java结果集最大列



我对Java还很陌生,我想知道如何通过MySQL查询返回所有列。例如,

SELECT * FROM `login`

然后我用这个代码返回结果:

        while (rs.next()) {
            for (byte i = 1; i < 10; i++) {
                result = result+" "+rs.getString(i);
            }
        }

由于动态MySQL查询,我希望for循环中的10列是最大列数。有简单的方法吗?谢谢

尽管正如duffymo所建议的那样,最好拼写出要在查询中接收的列,但您可以使用ResultSet元数据来获取返回的列数:

 ResultSetMetaData rsmd = rs.getMetaData();
 int numberOfColumns =rsmd.getColumnCount();
 while (rs.next()) {
      for (byte i = 1; i <= numberOfColumns; i++) {
           result = result+" "+rs.getString(i);
      }
 }

是的,您需要限制返回的字段。这是SQL问题,而不是Java问题。将您的查询更改为以下内容:

select this, that, theothercolumn from mytable;

然后你可以使用这个来动态限制它:

rs.getMetaData().getColumnCount()

我建议不要使用SELECT*。如果你知道你想要的列,就把它们拼出来。它将使您的代码在列更改时更加健壮,并减少连接上的字节数。

相关内容

  • 没有找到相关文章

最新更新