2012-01-13 17 views
0

私は分割され、単一のテーブルのレコードを持っているこれらの両方のテーブルにマルチデータベース接続のページング情報を追跡する方法は?

インスタンス2 MySQLサーバINSTANCE1セットアップ

MySQLサーバを次のようしています。私は各インスタンスからデータを取得し、JQGridにデータを表示する必要があります。

ここで考慮すべき点は次のとおりです。 1)各データベースインスタンスから、1000レコードしか取得する必要がありません。 2)1000個のレコードをマージし、デフォルトの列で昇順にソートします。 3)再びマージされたレコードから、1000個のレコードしかグリッドに表示されません。 4)次の1000レコードについては、表示されている以前のレコードを表示しないでください。

私が抱えている主な問題は、取り出したレコードから表示される最後の行を一意に識別する方法です。

私はこのように考えました: 1)すべての接続から各レコードのROWIDを取得します。しかし、2つのインスタンスからROWIDは同じであり、どのレコードがどのデータベースのものであるかをどのように識別するのでしょうか? 2)ROWIDと主キーの組み合わせを確認します。しかし、クライアントが主キーの自動インクリメント値をすべてのインスタンスで同じに設定すると、独自の組み合わせは得られません。

何か不足しているのですか、他の方法がありますか?

私はデータベースに接続するためにJDBC接続を使用しています。

を計算し、反復ごとにそれぞれ接続からフェッチするレコードの数のマップを作成する小さな関数を記述することによって問題を解決[ITを解決しました]。

申し訳ありませんが、このコードはクライアントIPと同じように追加できません。

答えて

0

通常、クラスフィールドに基づくhashCode()メソッドとequals()メソッドをオーバーライドするPOJOクラスを持つ行を一意に識別します。最後の行をHashMapに入れてチェックすることができます。 テーブルから検索されたrownumberは、RANK()とPARTITION BYを使用してテーブルを作成することで実現できます。マージ結果を使用して一時テーブルまたはtmp_テーブルを作成し、ドロップします。

これはabitに役立つことを望みます。

0

2つのmysqlインスタンスが互いに見える場合、どのようにビューを作成するか、2つのクエリ結果を結合します。 javaの世界では、このビューでクエリ/ページネーションを実行できますか?

関連する問題