【发布时间】:2014-07-14 22:20:28
【问题描述】:
我的数据库:
+---------+-----------+---------------+-------------------+---------------+-----------------+--------------------+
| KlantId | KlantNaam | KlantVoornaam | KlantAdres | KlantPostcode | KlantWoonplaats | KlantGeboorteDatum |
+---------+-----------+---------------+-------------------+---------------+-----------------+--------------------+
| 1 | Vervoort | Dieter | Grootstraat 1 | 3500 | Hasselt | 1/01/1991 |
| 2 | Droogmans | Jos | Kleine Laan 2 | 3500 | Hasselt | 5/05/1999 |
| 3 | Severijns | Sarah | Brede Weg 3 | 3570 | Alken | 28/02/1972 |
| 4 | Peeters | Piet | Rondplein 4 | 3600 | Genk | 6/08/1973 |
| 5 | Vreemans | Veerle | Lange Boulevard 5 | 3500 | Hasselt | 4/04/1980 |
+---------+-----------+---------------+-------------------+---------------+-----------------+--------------------+
我读到的代码:
try {
System.out.println("De klanten zijn:");
if (!rs.relative(1)) {
rs.first();
}
System.out.println("Naam en voornaam: " + rs.getString("KlantVoornaam") + " " + rs.getString("KlantNaam"));
ShowMenu();
con.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
System.exit(0);
}
由于某些奇怪的原因,rs.relative(1) 在第四条记录 ("Peeters Piet") 上返回 false,而还剩下一条记录 ("Vreemans Veerle"),因此它返回到第一条记录。
这是rs.relative() 或我的代码中的错误吗?
我知道我可以这样做
if (!rs.next()) {
rs.first();
}
但我想知道为什么 rs.relative(1) 不做同样的工作。
【问题讨论】:
-
您的查询是否有任何 WHERE 条件?
-
@PabloLozano 否,并且使用
rs.next()返回正确的记录,所以我认为这不是我的查询。