簡體   English   中英

偵聽MySQL數據庫中所做的更改並自動更新前端,而無需顯式刷新前端

[英]Listening to the changes made in MySQL database and updating front end automatically without explicitly refreshing the front end

我正在Marksheet Generation系統上工作。 D系統將安裝在多台計算機上,並在單獨的專用計算機上安裝集中式db服務器。

我需要的是,如果User#1從PC1插入數據,則更新的記錄應反映在安裝在PC2上的d系統上的d JavaFX TableView上。 同樣應該去其他方式。 但是我應該如何實現呢?

我覺得設置計時器和觸發SQL查詢不是一個好選擇。

我正在使用Hibernate和JavaFx進行演示。 我已經在JavaFX TableView上列出了MySQL數據庫記錄,除非我觸發Select查詢,否則TableView不會自動更新。

但是我需要找到一種方法來管理我的系統,或者特別是TableView應該偵聽或觀察數據庫中的更改,並且如果數據庫表中的d記錄是由同一系統或由安裝在不同計算機上的其他系統更新的,則它應該自動更新。

您可以使用開放復制器庫 您必須配置MySQL以允許對指定的數據庫進行復制,並使用該庫編寫Java代碼以偵聽數據庫更改。

這是一種觸發Java代碼的觸發器。

final OpenReplicator or = new OpenReplicator();
or.setUser("root");
or.setPassword("123456");
or.setHost("localhost");
or.setPort(3306);
or.setServerId(6789);
or.setBinlogPosition(4);
or.setBinlogFileName("mysql_bin.000001");
or.setBinlogEventListener(new BinlogEventListener() {
    public void onEvents(BinlogEventV4 event) {
        // your code goes here
    }
});
or.start();

因此,您可以捕獲插入/更新/刪除。 檢查更改了哪個表並反映了模型中的更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM