1
我正在製作基於EJB 3技術的Swing數據庫應用程序。我正在使用Netbeans 7.0.1。當程序啓動時它是從數據庫中獲取的所有數據:EJB 3&Swing:如何提高GUI響應能力?
private javax.persistence.Query spareQuery;
private java.util.List<Spares> spareList;
...
spareQuery = entityManager.createQuery("SELECT s FROM Spares s ORDER BY s.id");
spareList = org.jdesktop.observablecollections.ObservableCollections.
observableList(spareQuery.getResultList());
抓取所有的數據從數據庫導致顯著暫停在啓動過程中。 現在,我需要javax.persistence.Query
接口的包裝,這將做到以下幾點:
初始化:
spareQuery = entityManager.createQuery("SELECT s FROM Spares s ORDER BY s.id"); spareQuery = new MyQueryWrapper (spareQuery);
主要部分!之後,當這家名爲:
spareList = org.jdesktop.observablecollections.ObservableCollections. observableList(spareQuery.getResultList());
而不是等待所有數據從服務器接收,Query
實例應查詢拆分成塊,以後每塊檢索的數據添加到列表(如列表是可觀察的,數據的每一部分將出現在相關的JTable
)。因此,我們將有輕鬆快速的啓動。
因此,工作的邏輯應該是這樣的:
SELECT s FROM Spares s ORDER BY s.id WHERE s.id BETWEEN 1 and 20
- 將數據添加到列表中。
- ...
SELECT s FROM Spares s ORDER BY s.id WHERE s.id BETWEEN 80 and 100
- 數據添加到列表中。
問題:是否有可替代(套)EntityManager
,Query
或別的東西來實現軟異步數據從數據庫中使用EJB3技術獲取任何圖書館?
我知道'SwingWorker',這是目前列表中的第一個解決方案。 但我的問題是,是否有圖書館以這篇文章中描述的方式進行事情? – Exterminator13 2012-03-06 13:06:19