【发布时间】:2018-11-21 02:55:29
【问题描述】:
我在弄清楚如何使用 JDBC 处理应用程序上的实体之间的交互时遇到问题。以前我使用过 Hibernate,但这不是一个真正的问题,因为几乎所有事情都可以自动或通过注释解决。现在,使用 JDBC 就没有那么神奇了。
假设我有这些课程:
class A{
private String name;
private List<B> bs;
private C c;
}
class AService{
private ADao aDao;
void save(A a){
aDao.persist(a);
}
}
class ADao{
void persist(A a){
//open connection and autocommit false
//persist C
//persist B's
//persist A
//commit
}
}
B 和 C 有各自的 DAO 和服务。
现在,据我所知,您不应该将 DAO 相互混合......这意味着我不应该在 ADao 中使用 BDao 和/或 CDao,而只使用它们的服务。
如果这是真的,我应该如何实现所需的行为?我可以在事务上持久化多个实体吗?服务不应该知道任何关于连接或任何东西......这些是我无法传播到业务层的详细实现。
到目前为止,我还没有在网上找到任何东西...所有示例都是针对单个实体的,而我能想到的唯一其他解决方案就是在我的其他 DAO 上简单地复制代码。
非常感谢您能提供的任何帮助,以及相关的书籍或好资料。我找到了一些关于 jdbc 的书.. 但坦率地说,它们并不是那么好......其中一些甚至将 DAO 传播到表示层.. :/
【问题讨论】: