![](/img/trans.png)
[英]Why am I not able to add user input into database with front end as java and back end as 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.