我是Java的新手,我想知道如何获得通过MySQL查询返回的所有列。例如,
SELECT * FROM `login`
然后我有了这段代码来返回结果:
while (rs.next()) {
for (byte i = 1; i < 10; i++) {
result = result+" "+rs.getString(i);
}
}
由于动态MySQL查询,我希望for循环中的10是最大列数。有一个简单的方法吗?感谢。
答案 0 :(得分:3)
虽然正如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);
}
}
答案 1 :(得分:1)
是的,您可以限制返回的字段。这是一个SQL问题,而不是Java问题。将您的查询更改为以下内容:
select this, that, theothercolumn from mytable;
然后你可以用它来动态限制它:
rs.getMetaData().getColumnCount()
答案 2 :(得分:0)
我建议不要使用SELECT *。如果您知道所需的列,请拼写出来。它会使代码在列更改时更加健壮,并减少线路上的字节数。