2012-01-13 53 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世界中,你可以在这个视图上查询/分页?