我对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*。如果你知道你想要的列,就把它们拼出来。它将使您的代码在列更改时更加健壮,并减少连接上的字节数。