1

在 DAO 设计模式中必须将 Connection 对象放在哪里?

我是否需要DaoManager使用 2 种方法创建单独的类(例如):open()close()?在业务逻辑中确实喜欢:

DaoManager.open();
PersonDao personDao = DaoFactory.getPersonDao();
Person person = personDao.getById(personId);
.... //more DAO operations
DaoManager.close()
4

2 回答 2

2

连接应该是PersonDao.getById()方法(以及其他 DAO 方法)的局部变量。它应该从 DataSource 获取连接,使用它,然后在 finally 块中关闭它。

如果您详细介绍一下您的环境(Spring、EJB 容器?),我可以给出更多解释。

于 2012-12-27T09:05:23.650 回答
1

在大型应用程序中,您通常会将连接保存在连接池中,以便可以将它们重用于多种用途。这样做是因为打开一个新的数据库连接可能有点贵。

DAO 获取对池的引用,并在需要时取出连接。手术结束后,它会将其送回游泳池。

有几种可用的连接池的开源实现,您可能希望重用其中之一。

于 2012-12-27T09:04:52.583 回答