2012-01-13 33 views
0

我有以下設置如何跟蹤多數據庫連接的分頁信息?

MySQL服務器INSTANCE1在這兩個表 MySQL服務器INSTANCE2

我有被劃分在單個表中的記錄。我必須從每個實例中檢索數據並在JQGrid中顯示數據。

以下是需要考慮的因素: 1)從每個數據庫實例中只需要獲取1000條記錄。 2)合併這1000條記錄並按默認列升序排序。 3)從合併的記錄中再次獲得只有1000個記錄才能顯示在網格中。 4)對於接下來的1000條記錄,我們不應該顯示任何已經顯示的早期記錄。

我遇到的主要問題是如何唯一標識從獲取的記錄中顯示的最後一行。

我想過這樣做: 1)獲取來自所有連接的每條記錄的rowid。但是從兩個實例來看,rowid會是相同的,那麼我將如何確定哪個記錄來自哪個數據庫? 2)檢查rowid和主鍵組合。但是,如果客戶端在所有實例上將主鍵的自動增量值設置爲相同,那麼我們不會得到唯一的組合。

我錯過了什麼,或者有沒有其他的方式來做到這一點?

我正在使用JDBC連接來連接數據庫。

[解決它〕 通過編寫一個小函數,其計算和創建地圖爲的記錄數被從對於每次迭代的每個連接取問題解決了。

對不起,不能在這裏添加代碼,因爲它是客戶端IP。

回答

0

您通常使用POJO類來唯一標識一行,並根據您的類字段覆蓋hashCode()和equals()方法。你可以把你的最後一行放入一個HashMap並檢查它。 通過使用RANK()和PARTITION BY創建一個表,可以實現從表中檢索到的一個rownumber。用合併結果創建一個臨時表或tmp_表,然後放下它。

希望這有助於提升。

0

如果兩個mysql實例可以互相看到,那麼如何創建一個視圖,UNION這兩個查詢結果。那麼在Java世界中,你可以在這個視圖上查詢/分頁?