有哪些数据库抽象模式?

What database abstraction patterns are there?

我正在努力了解数据库抽象的常见模式。

到目前为止我发现:

  1. 数据库层
    • 只是一个单独的 class,其中包含 SQL
    • 不符合任何其他规则
  2. 数据访问对象 (DAO)
    • 和上面一样,但是有一个传输对象代表数据库的列table
    • create、delete、update 方法将填充的传输对象作为输入
    • 查找方法可能接受字符串 (findByName) 或整数 (findByAge) 之类的输入,但总是 return 传输对象列表
  3. 资料库
    • 对象集合的抽象
    • 更接近领域模型
    • 我需要在这里阅读更多内容
  4. 对象关系映射器
    • 工具给我一个映射到后台数据库table的对象
    • 该对象表示 table
    • 中的一行
    • a 属性 对象的更改导致更新

请不要太担心我对模式的快速解释。我还在了解阶段。

但是这个列表是否完整,还是这里缺少其他概念?

Martin Fowler's "Patterns of Enterprise Application Architecture" 是一本在社区中备受推崇的好书,其中记录了大约五十种设计模式,其中大约一半与数据库交互有关。它包括存储库、几种 DAO(或多或少涵盖了您的数据库层和 DAO)和对象关系映射器中的几种完整模式类别。所以这是一个很好的起点。

如果不简单地重复模式列表,很难在这个答案中总结更多 POEAA 的内容。还好the list can be found at Fowler's web site。不幸的是,那里的版权符号表明我不应该只把它包括在这里。