-1

我有这个方法

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 只给出一行,尽管表中有很多行?这个问题,但它真的没有回答我的:)

4

1 回答 1

0

我很抱歉这个问题。我发现了我的错误。ResultSet next() 方法工作正常,但我在 addParticipantsIdToCourse(course) 方法中更改了它的值:)

于 2016-01-19T12:24:44.810 回答