【发布时间】:2016-10-07 09:48:44
【问题描述】:
我正在编写一个应该与多个数据库一起使用的微服务。
例如,假设项目 A 正在使用 MongoDB,那么我的服务应该知道如何与 MongoDB(或任何其他 SQL 数据库)连接和工作(查询、保存等)。
我已阅读 Oracle 编写的 this 文档,解释了 DAL 和 DAO 模型,但据我了解,我需要为我想要执行的每种查询实现每种方法。
例如,假设我有这个类:
public class Account {
private String userName;
private String firstName;
private String lastName;
private String email;
private int age;
}
从上面的链接得出的结论是,对于我要执行的每个查询,我都需要在 DAO 接口中编写一个函数(如 db 网关),即:
getAccountByEmail(...)
getAccountByUsername(...)
getAccountByUsernameAndEmail(...)
在我看来,这似乎是一种糟糕的方法,会导致需要处理的方法太多。
还有模型不包含的查询字段。例如,如果我的模型有一个创建日期,并且我想在两个日期之间查询对象,我需要一种方法来查询这些字段的数据库。
我已经四处寻找了一段时间,但找不到解决此问题的指南或最佳实践。
我想知道除了实现每个方法之外是否还有其他方法可以解决这个问题。
【问题讨论】:
-
如果您正在寻找一些即食餐点,请考虑使用 Spring-data (projects.spring.io/spring-data)。
标签: java sql mongodb data-access-layer