2017-08-10 76 views
-3

我想我太累了或什麼..在這裏看不到什麼不好。我的代碼有什麼問題?有小費嗎? JAVA MYSQL

 String select = "SELECT project_id FROM project WHERE project_key = ?"; 

    PreparedStatement preparedStatement1 = con.prepareStatement(select); 
    preparedStatement1.setString(1, project_key); 
    ResultSet rs = preparedStatement1.executeQuery(); 

    int project_id = 0; 

    while(rs.next()) { 
      project_id = rs.getInt("project_id"); 
    } 
    System.out.println(project_id); 

問題是爲什麼project_id返回我0?

P.S.在數據庫中,我確實已將我的項目表完全插入,並且是的,我重複檢查了詢問的值。

+2

要在循環中處理的最後一條記錄具有零的「project_id」值。 –

+0

你爲什麼要做setString?通常鍵是整數。 setInt會更合適。 – Tschallacka

+0

單步執行內置於IDE中的調試器中的代碼。到達調試器是第一件事,而不是最後一件事。而在SO上發佈即將結束。順便說一句,「while」在那裏是錯誤的控制結構。它可以工作,但是它是從**單行**中檢索值的錯誤結構。在處理單行時,'if'是正確的結構。 –

回答

-2

嘗試下面的代碼,看看結果集返回的任何值

rs.first(); 
System.out.println(rs.getInt("project_id")); 

如果你沒有看到它意味着問題與查詢做任何價值。什麼都沒有返回,並且這個集合是空的。 (我要發表評論,但我沒有足夠的聲譽)

+0

爲什麼這個答案得到downvoted兩次,而它是公認的答案? –

+0

我不會downvoted,但它可以被認爲是錯誤的。因爲它可以拋出異常。 –

0

更改代碼是

while(rs.next()) { 
     int project_id = rs.getInt("project_id"); 
     System.out.println(project_id); 
} 

我想你會看到沒有值(如果沒有與project_key問題)

或許多值最後一個將爲零!