在DAO设计模式中必须放置哪个连接对象?
我是否需要使用两种方法创建单独的类(例如DaoManager
):open()
和close()
?在业务逻辑中确实如此:
DaoManager.open();
PersonDao personDao = DaoFactory.getPersonDao();
Person person = personDao.getById(personId);
.... //more DAO operations
DaoManager.close()
答案 0 :(得分:2)
连接应该是PersonDao.getById()
方法(以及其他DAO方法)的局部变量。它应该从DataSource获取连接,使用它,并在finally块中关闭它。
如果您对环境(Spring,EJB容器?)有更多了解,我可以提供更多解释。
答案 1 :(得分:1)
在大型应用程序中,您通常会将连接保存在连接池中,以便可以将它们重用于多个目的。一个人这样做是因为打开一个新的数据库连接可能有些昂贵。
DAO获取对池的引用,并在需要时取出连接。手术后,它会把它送回池中。
有几种可用的连接池的开源实现,您可能希望重用其中一种。