DAO。 JDBC。在哪里放置Connection对象?

时间:2012-12-27 08:51:57

标签: java design-patterns jdbc dao

在DAO设计模式中必须放置哪个连接对象?

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

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

2 个答案:

答案 0 :(得分:2)

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

如果您对环境(Spring,EJB容器?)有更多了解,我可以提供更多解释。

答案 1 :(得分:1)

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

DAO获取对池的引用,并在需要时取出连接。手术后,它会把它送回池中。

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