2013-12-09 2 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

, мы обычно сохраняем уникальный uid – 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

Смежные вопросы