我的表中有以下三行,比如 tb1
key time id rowid
X 11:40 1 1
Y 4:50 1 2
Z 6:48 1 2
现在我正在使用 JDBC 获取记录并迭代结果集,如下所示:
rs = statement.executeQuery("select * from tb1")
ResultSetMetaData md = rs.getMetaData();
int cols = md.getColumnCount();
while(rs.next())
{
for(int i = 1; i <= cols ; i++)
{
System.out.println("col name " + md.getColumnName(i));
System.out.println("col name " + rs.getObject(i));
}
}
当我奇怪地执行上面的代码时,它总是先打印第二行,然后打印第一行,然后打印第三行。简而言之,结果集数据检索不按顺序进行。这是为什么?
最佳答案
您没有指定“order by”子句。通常,数据库不需要以任何顺序返回行,除非指定了“order by”子句。将 order by 子句添加到您的 select 语句。
关于Java SQL 结果集检索顺序不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18109936/