У меня есть база данных sql, из которой я пытаюсь загрузить данные. RstImport Student импортирует из таблицы ученика, которая содержит firstName, middleName, lastName, phoneNumber и dob. RstImportModule затем импортирует из таблицы списка модулей, которая содержит 6 модулей и классов. Импортированные данные из каждого затем используются для создания нового объекта ученика, с модулями и оценками, добавляемыми в массив в этом объекте. Затем объект ученика должен быть добавлен в массив listOfStudents. Я получаю сообщение об ошибке «Операция не разрешена после закрытия ResultSet». Когда отладка затмения говорит мне, в начале второго цикла while происходит ошибка. Почему я получаю эту ошибку?
public class LoadData {
public static ArrayList<Student> loadStudentData() throws ClassNotFoundException, SQLException {
Statement stm = null;
System.out.println("Connecting to Database");
System.out.println("**********************");
Connection myConn = DriverManager.getConnection
("jdbc:mysql://localhost:3306/schoolstudentsystem", "root", "");
stm = myConn.createStatement();
String sqlImportStudent = "Select * From students";
String sqlImportModule = "Select * From moduleslist";
ResultSet rstImportStudent = stm.executeQuery(sqlImportStudent);
ResultSet rstImportModule = stm.executeQuery(sqlImportModule);
ModuleGrade[] moduleGradeArray = new ModuleGrade[6];
while (rstImportModule.next()) {
for(int i = 0; i < Student.modulesList.length; i++) {
ModuleGrade mg1 = new ModuleGrade(rstImportModule.getString("m1"), rstImportModule.getInt("mg1"));
ModuleGrade mg2 = new ModuleGrade(rstImportModule.getString("m2"), rstImportModule.getInt("mg2"));
ModuleGrade mg3 = new ModuleGrade(rstImportModule.getString("m3"), rstImportModule.getInt("mg3"));
ModuleGrade mg4 = new ModuleGrade(rstImportModule.getString("m4"), rstImportModule.getInt("mg4"));
ModuleGrade mg5 = new ModuleGrade(rstImportModule.getString("m5"), rstImportModule.getInt("mg5"));
ModuleGrade mg6 = new ModuleGrade(rstImportModule.getString("m6"), rstImportModule.getInt("mg6"));
moduleGradeArray[0] = mg1;
moduleGradeArray[1] = mg2;
moduleGradeArray[2] = mg3;
moduleGradeArray[3] = mg4;
moduleGradeArray[4] = mg5;
moduleGradeArray[5] = mg6;
}
while (rstImportStudent.next()) {
Student student = new Student(rstImportStudent.getString("firstName"), rstImportStudent.getString("middleName"),
rstImportStudent.getString("lastName"),
rstImportStudent.getString("email"), rstImportStudent.getString("phoneNumber"), rstImportStudent.getInt("dob"),
moduleGradeArray);
ClassGroup.listOfStudents.add(student);
}
}
rstImportStudent.close();
rstImportModule.close();
myConn.close();
return ClassGroup.listOfStudents;
}
}