我正在尝试使用值 FK_adId
从我的数据库中获取汽车。我已尝试使用 FK_adId
值 52 调用该方法,并且我已检查我的数据库中是否存在具有 FK_adId
值 52 的汽车。为什么不退还给我?
public Car getCar(int adId) {
Car car = null;
try {
Class.forName("org.postgresql.Driver");
if (con != null) {
ps = con.prepareStatement("SELECT * FROM \"car\" WHERE \"FK_adId\" = ?;");
ps.setInt(1, adId);
rs = ps.executeQuery();
rs.next();
if (rs.next()) {
car = new Car(rs.getString("brand"), rs.getString("vin"), rs.getString("condition"), rs.getInt("distanceTraveled"), rs.getInt("age"), rs.getInt("price"), rs.getInt("FK_adId"));
}
}
} catch (Exception ex) {
System.out.println(ex);
}
return car;
}
最佳答案
rs.next(); if (rs.next()) {
调用 .next()
一次,而不是两次。您前进到结果的第一行,然后前进到第二行。由于查询未返回两行,因此您不会获得第二行。您跳过了所需的行。
关于java - 查询不从数据库返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34268484/