我正在构建一个基于MVC的Web应用程序,每个模型聚合都有自己的存储库。存储库从MySQL数据库中获取数据。
我很难决定如何实现各种存储库方法,主要是因为我希望能够在同一个数据库连接中执行顺序查询(而不是在每个方法体中创建一个新连接,并关闭它在方法的最后)。
在两个顺序存储库方法之间共享数据库连接实例的一种方法是将已创建的数据库连接的实例(在存储库外部创建)作为存储库方法的参数传递。 显然,这种实现在设计上有点完全错误。
另一种方法是使用单一数据库连接池或存储库将使用的某种工厂,并且可以根据需要专门创建新连接。
我想知道你们是否有针对上述问题的任何其他设计技巧......
答案 0 :(得分:1)
这一切都解决了。不要自己写。使用提供DBCP之类的DataSource实现的连接池库。这需要重用连接。使用Spring's JdbcTemplate来处理所有打开和关闭。然后在其上应用declarative transaction management,您将有效地获得每个请求的连接。