2013-12-09 24 views
-1

我有這樣的代碼:Java的MySQL的回報率只有一行

try { 
    Integer user = InformationService.authenticate(username, password, connection); 
    Statement st = connection.createStatement(); 
    ResultSet rs = st.executeQuery("SELECT * FROM tasks WHERE uid = " + user + " ORDER BY title ASC"); 
    System.out.println("SELECT * FROM tasks WHERE uid = " + user + " ORDER BY title ASC"); 
    while (rs.next()) { 
     Task p = new Task(rs.getString("title"), rs.getInt("id"), rs.getString("descriere"), 
       rs.getString("data"), rs.getInt("uid"), rs.getString("data_creare"), rs.getString("ora"), 
       rs.getInt("status"), rs.getString("priority"), rs.getInt("sters"), rs.getInt("id_parinte"), 
       rs.getInt("notify"), rs.getString("assigner"), rs.getInt("durata"), rs.getInt("project_id")); 
     System.out.println(p); 
     tasks.add(p); 
    } 

的問題是,它僅返回第一行,如果我手動運行該查詢我得到更多的結果(16個)。這裏的輸出:

SELECT * FROM tasks WHERE uid = 4 ORDER BY title ASC 
[email protected] 

任何想法爲什麼會發生這種情況?

+0

手動運行時得到的結果數是多少,如果粘貼一些數據,將不勝感激 – Satya

+0

通常我們保持獨特 – SpringLearner

+0

@JqueryLearner問題是它沒有返回所有行。 – Sherlock

回答

0

也許你可以改進代碼有點像下面這將有助於你快速確定問題。

int rowCount = 0; 

try { 
    Integer user = InformationService.authenticate(username, password, connection); 
    Statement st = connection.createStatement(); 
    String query = "SELECT * FROM tasks WHERE uid = " + user + " ORDER BY title ASC"; 
    System.out.println(query); 
    ResultSet rs = st.executeQuery(query); 

    while (rs.next()) { 
     Task p = new Task(rs.getString("title"), rs.getInt("id"), rs.getString("descriere"), 
      rs.getString("data"), rs.getInt("uid"), rs.getString("data_creare"), rs.getString("ora"), 
      rs.getInt("status"), rs.getString("priority"), rs.getInt("sters"), rs.getInt("id_parinte"), 
      rs.getInt("notify"), rs.getString("assigner"), rs.getInt("durata"), rs.getInt("project_id")); 

     rowCount++; 
     System.out.println(rowCount + "." + p); 
     tasks.add(p); 
    } 
} finally { 
    System.out.println("Number of records = " + rowCount); 
} 

在這種方法中,您可以清楚地確定有多少行被迭代。

+0

謝謝。實際上這幫助我發現我沒有在我的漁獲物中打印e.printStackTrace()。 :) – Sherlock