Java SQL 结果集检索顺序不正确

标签 java jdbc

我的表中有以下三行,比如 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/

相关文章:

java - 如何将 MS JDBC 驱动程序与 MS SQL Server 2008 Express 一起使用?

java - 将Java连接到MySQL数据库

java - Oracle 连接压缩?

java - log4j2异步记录器是否真的将数据插入MySQL?

java - 将 java 字符串拆分为模式明智的部分。

java - android studio 应用程序在发布 json 时不断停止

Java:Selenium Grid:如何在特定节点上运行特定测试

java - 尝试执行 SELECT 查询时抛出 PSQLException

java - 为什么只有某些 XPath 表达式在 xml 具有 namespace 前缀时找到节点

java - 从 Java FileInputStream 读取字节时如何区分 -1 和 0xff?