如何封装数据库访问?

时间:2009-06-01 18:48:41

标签: database hibernate orm design-patterns encapsulation

我正在.NET中开发一个事务性应用程序,并希望获得有关如何正确封装数据库访问的一些输入,以便:

  • 我没有连接字符串 在这个地方
  • 多次调用存储的相同内容 来自不同职能的程序
  • 或WORSE,多次存储 一个不同的程序 单列

我很想知道使用像NHibernate这样的ORM是否有用,因为它可能会为快速变化的数据模型增加另一层复杂性,并且需要在紧迫的时间表上生成工件。

我对ORM包以外的方法或模式更感兴趣。

4 个答案:

答案 0 :(得分:1)

至少有两种被广泛接受的设计模式用于封装数据访问:

  • 存储库(DDD)
  • DAO(数据访问对象)

为了完整起见,我建议你这些书:

答案 1 :(得分:1)

如果看起来这是一个重要的项目而且DAL是一个主要的风险因素,请让参与其中的人参与其中。你是完全正确的,有太多的方法可以通过尝试在没有扎实经验的情况下第一次做到这一点来摆脱困境。

有许多模式可以实现这一目标,但我会寻找一个拥有一套完全合适的简单模式的人。

答案 2 :(得分:1)

如上所述,查看存储库和工作单元格。强烈推荐福勒和埃文斯的书籍。 karl seguin的读者也是如此,它让我对刚刚提到的书籍有了更清晰的介绍。抓住它http://codebetter.com/blogs/karlseguin/archive/2008/06/24/foundations-of-programming-ebook.aspx

答案 3 :(得分:-1)

作为Java Developer,我可以建议阅读有关jdbc模板的内容,尽管它不是.NET,但您可以了解Spring框架如何封装数据访问层并获得一些想法。