我正在爲JavaFX和數據庫實踐(主要是我是初學者)開發一個項目,在那裏我有一個獨特的類,它保存關於音樂會(名稱,位置,日期等等)。我原本是在一個可觀察的數組列表中看到這些數據。從這裏可以對記錄進行編輯,刪除或添加新記錄。將可編輯的tableView鏈接到javaFX中的數據庫
我現在使用ORMLite和sqlite將它們存儲在數據庫中。這樣我就可以對數據執行過濾(即顯示特定位置的所有事件),然後在表格中顯示。
我的問題是,當我從數據庫中讀取數據時,將其轉換爲ObservableArrayList,以便表視圖可以使用它,但是通過創建新的數組列表,我的編輯/新建/刪除按鈕只會影響這個列表,不是數據庫。問題是,每次我執行查詢時,例如添加或刪除記錄到數據庫,它都需要重新生成tableView的observableArrayList,它需要大約5秒的時間,約250k條記錄。
是否有更有效的方式來處理數據庫和javaFx tableViews?
如果您希望數據庫中的更新發生,而用戶在表上執行某些操作時,可能需要一段時間才能完成,因爲數據庫操作是耗時的操作。你可以使用線程,如果你想擺脫滯後。一個非常好的閱讀將是問題的答案[使用線程來發出數據庫請求](http://stackoverflow.com/questions/30249493/using-threads-to-make-database-requests/30250308#30250308) – ItachiUchiha
爲什麼你需要「重現」每次更新的數據嗎?爲什麼不直接在數據庫中執行更新,如果成功,更新可觀察列表中的本地數據? –