从两个数据库同步获取结果

时间:2014-12-06 17:53:55

标签: java database spring hibernate

最近遇到这个面试问题并且不确定答案:

在来自浏览器的同步请求中,如果必须访问两个不同的数据库,如何获得结果?

我觉得好像答案与Hibernate和Spring Framework有关,但我对这两者都没有很多经验。

1 个答案:

答案 0 :(得分:1)

我不确定我是否看到了这里的复杂性。如果它是同步请求,那么您需要尽快找到结果并将其发回。所以你

  1. 查询数据库A,了解您的需求。
  2. 查询数据库B以了解您的需求。
  3. 合并并发回结果。
  4. 据我所知,唯一可能的优化是,如果您发送给B的查询与A的结果无关,那么您应该同时执行(1)和(2)(在单独的线程中) )。

    即使它们不是独立的,您仍然可以在某种程度上进行优化。例如,如果你从A中检索一个布尔值,你可能能够同时执行两个对B的查询,一个在A返回true时有用,另一个在返回false时有用。这可能比等待A的结果更快,特别是如果通过更快的网络链接访问B。

    如果这是一个面试问题,并且它在实现方面是通用的,我当然不会提到Hibernate和Spring作为解决方案的一部分。