MySQL資料庫單向同步問題(Mina 邏輯實現)
時間戳法: (用時間作比較)
用過MINA的人都知道,MINA是一個基於網路的非同步通訊的框架,它可以實現兩臺機器的資訊的互動,不僅可以使用java通訊,還可以應用於網頁的資訊互動。
不過在這裡講的是用——MINA 實現兩個資料庫的資料同步。
準備工作:
MINA 實現資料庫同步 需要藉助 JDBC 和 JSON 資料格式處理的jar包, 這裡編解碼器就不用說了,都是mina必備的內容。我這裡用的是累積協議編解碼器
直接邏輯:
1. 需要了解一下mysql 中的一個型別為 TimeStamp 的欄位,這個欄位你可以手動新建一下,驗證一下它的功能特點,簡單來說: 它是一個可以記錄 ——資料庫建立一條記錄或者更新一條 ——的時間,時間格式大概為“YYYY-MM-DD HH-MM-SS”.
2. 我喜歡建立兩個欄位,一個記錄更新的時間,一個記錄資料插入的時間,這樣我可以分別查詢,然後分別進行操作。
3. 根據你想要同步的時間,定義你想什麼時候,同步哪一個時間段的資料。(定時執行 Timer類瞭解一下)
4. 兩個時間欄位,可以大概解決資料庫對資料的 更新 和 插入 的SQL操作。
5. 通過 傳輸資料庫表的 主鍵,我們來找到兩個資料庫相同的表中需要刪除的記錄,假如 兩個資料庫的主鍵 有所不同,那麼獲取到 主鍵的插入時間,如果插入時間不包括在你需要執行同步時間,那麼說明這條記錄不是該時間段插入的,引起的不同只能是另一個表刪除了,那麼刪除當前表內的這個資料。
以上,實現了資料庫的 增、刪、改、查 的基本操作,與邏輯實現。 不用謝,不用謝!!!