1

こんにちは、テーブルに次の 3 つの行があり、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));
   }

}

上記のコードを奇妙に実行すると、常に 2 行目が最初に表示され、次に 1 行目、次に 3 行目が表示されます。つまり、結果セットのデータ取得は適切ではありません。なぜだか分からない?ガイドしてください。前もって感謝します。

4

1 に答える 1

4

"order by" 句が指定されていません。一般に、「order by」句が指定されていない限り、データベースは任意の順序で行を返す必要はありません。select ステートメントに order by 句を追加します。

于 2013-08-07T17:32:01.473 に答える