2015-12-14 98 views
1

我正在尝试使用值FK_adId从我的数据库中获取一辆汽车。我试着用FK_adId的值52来调用该方法,并且我检查了数据库中存在值为FK_adId的汽车。为什么它没有回到我身边?查询从数据库中不返回任何内容

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; 
} 

回答

6
 rs.next(); 
    if (rs.next()) { 

呼叫.next()一次,而不是两次。你前进到结果的第一行,然后你前进到第二行。由于查询没有返回两行,因此不会获得第二行。你跳过了你想要的那一行。

+0

非常感谢你,没有想到那个! – Jesper

相关问题