我想救我的數據庫表中一類學生的ListArray。ListArray保存相同的記錄
public List<Students> getData() {
//_Students.clear();
Students tempStudent = new Students();
List<Students> students = new ArrayList<>();
dbConnect();
try {
stmt = c.createStatement();
rs = stmt.executeQuery("SELECT * FROM Students;");
int size = 0;
while (rs.next()) {
tempStudent.studentId = rs.getInt("StudentNo");
tempStudent.studentName = rs.getString("StudentName");
tempStudent.studentAge = rs.getInt("StudentAge");
students.add(tempStudent);
size++;
}
rs.close();
c.commit();
stmt.close();
c.close();
} catch (SQLException e) {
System.err.println(e.getClass().getName() + ": " + e.getMessage());
System.exit(0);
}
return students;
}
在while循環,當我嘗試打印數據
System.out.println("Student Id: " + tempStudent.studentId);
它打印完美的罰款。但是,當我嘗試打印它爲
for (int i = 0; i < size; i++) {
System.out.println("Student Id: " + student.get(i).studentId);
}
它打印從數據庫中讀取的最後一條記錄。記錄數量相同。如果在數據庫表中保存了4行,則顯示的記錄也將是4次。
是不是有什麼毛病我使用LIST的方式嗎? 謝謝!
創建的新實例'tempStudent'您光顧的開始。你正在覆蓋價值。 – hofmeister
@Muneeb,不要說對不起,這個堆疊過流。看看我的更新。它將清除您的疑問,如下所示:A.jsp> conntroller.java> dao.java> dbUtil.java – jmail