0
這裏是我的問題: 我有一個類Detenu:的ResultSet在ObservableList
public class Detenu {
private static String n_ecrou; // Unique id
private static String prenom;
private static String nom;
private static String date_naissance;
private static String lieu_naissance;
public Detenu(String p1, String p2, String p3, String p4, String p5) {
n_ecrou = p1;
prenom = p2;
nom = p3;
date_naissance = p4;
lieu_naissance = p5;
}
public static String getN_ecrou() {
return n_ecrou;
}
}
我也使用JDBC來我的應用程序連接到嵌入式數據庫。該數據庫實現了具有5列「DETECU」,「PRENOM」,「NOM」,「DATE_NAISSANCE」,「LIEU_NAISSANCE」的DETENU表。
然後,我需要在JavaFX TableView中顯示存儲在我的數據庫中的所有Detenus。所以我使用這樣的getData()函數:
public static ObservableList<Detenu> getData() {
ObservableList<Detenu> data = FXCollections.observableArrayList();
try {
// This part works fine
Connection con = DriverManager.getConnection("...");
Statement stmt = con.createStatement();
ResultSet result = stmt.executeQuery("SELECT * FROM DETENU);
while(result.next()) {
// Here comes the problem
// This shows all the different n_ecrou
System.out.println(result.getObject(1).toString());
data.add(new Detenu(result.getObject(1).toString(), result.getObject(2).toString(), result.getObject(3).toString(), result.getObject(4).toString(), result.getObject(5).toString()));
}
// This shows the same n_ecrou
System.out.println(data.get(0).getN_ecrou() + " " + data.get(1).getN_ecrou());
stmt.close();
result.close();
} catch(SQLException e) {
//Error process
}
return data;
}
例如,我有兩個Detenus在我的數據庫中。我返回的ObservableList包含兩個Detenus,但同一個,是數據庫中的最後一個。 所以當我想要在TableView中顯示這些數據時,它會創建兩行,但它們是相同的。 顯示在圖片中:
我沒有任何想法,爲什麼發生這種情況,所以任何幫助將感謝:)
PS:對不起,我的英語
好吧,這工作得很好......非常感謝! – NicoTine