2016-01-19 4 views
0

Я, имеющий этот методResultSet следующий() возвращает только одну строку

public List<Course> getCourses() throws InvalidCourseDataException { 
    ArrayList<Course> allCoursesFromDB = new ArrayList<>(); 
    Connection dbConnection = null; 

    String getFromTableSQL = "SELECT * FROM courses"; 

    try { 
     dbConnection = getDBConnection(); 
     statement = dbConnection.createStatement(); 
     resultSet = statement.executeQuery(getFromTableSQL); 

     while (resultSet.next()) { 

      String courseCategory = resultSet.getString("course_category"); 
      String courseTitle = resultSet.getString("course_title"); 

      int courseId = resultSet.getInt("course_id"); 

      Date startDate = resultSet.getTimestamp("starting_date"); 
      Date endDate = resultSet.getDate("ending_date"); 
      String description = resultSet.getString("description"); 
      int teacherId = resultSet.getInt("teacher_id"); 

      Course course = new Course(courseCategory, courseTitle, startDate, endDate); 
      course.setCourseId(courseId); 
      course.setTeacherId(teacherId); 
      course.setDescription(description); 

      addParticipantsIdToCourse(course); 
      allCoursesFromDB.add(course); 
     } 

Метод getDBConnection() является частных статических соединения getDBConnection() {

System.out.println("-------- MySQL JDBC Connection Testing ------------"); 

    Connection dbConnection = null; 

    try { 
     Class.forName(DB_DRIVER); 
    } catch (ClassNotFoundException e) { 
     System.out.println(e.getMessage()); 
    } 

    try { 
     dbConnection = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); 
     return dbConnection; 
    } catch (SQLException e) { 
     System.out.println(e.getMessage()); 
    } 

    return dbConnection; 

} 

Моя проблема заключается в том, что Resultset .next() возвращает только первую строку из БД. Я уверен, что у меня несколько строк. Я видел JDBC ResultSet is giving only one row although there are many rows in table? этот вопрос, но он действительно не отвечает на мой вопрос :)

+0

как вы думаете, что он только возвращает? Отлаженная? Некоторые результаты? – Jan

+0

Вы уверены, что вы подключены к нужной базе данных? –

+0

Когда я отлаживаю, я вижу, что в мой ArrayList добавлен только один курс. И да, я абсолютно уверен в БД –

ответ

0

Извините что вопрос. Я нашел свою ошибку. Метод ResultSet next() работает нормально, но я изменил его значение в методе addParticipantsIdToCourse (курс):

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