Spring @Repository和@Service

时间:2015-04-15 15:30:43

标签: java mysql spring spring-mvc

我正在使用Spring 4.0.3构建应用程序

我正在处理一些大数据,在我的@Repository中我有一个方法可以从db中获取大约300,000条记录。

我将根据其类型多次使用此数据(例如,我将显示已发生的导出操作的数量,并且在同一页面的另一个位置,我将显示发生了多少导入操作。)

我需要最小化数据库交互,我应该在服务层中有两个或更多方法用于导入,一个用于导出等...还是有其他方法?

P.S。通过这样做,服务和存储库接口将有不同数量的方法,这是一个很好的做法吗?

2 个答案:

答案 0 :(得分:1)

如果要将数据库往返保持在最低限度,最好让DB为您处理数据并在一个查询中检索所有统计信息(导入数,导出数等)。

类似的东西:

SELECT imports, exports
FROM (select count(*) from OPS where TYPE="import") as imports,
     (select count(*) from OPS where TYPE="export") as exports

如果算法更复杂,可能需要一些PL / SQL或等价物,但数据库的生活目标是处理数据,那么为什么不充分利用它呢?

答案 1 :(得分:0)

你可以缓存它,以避免数据库调用。

  class business{
  @cache the response
  method1(import){
  dbstore.getdata();
  process the data to get import result;
  }
  @cache the response
  method2(export){
  dbstore.getdata();
  process the data to get export result;
  }
  }

  class dbstore{
  getdata(){
  ..
  }
  }