有哪些数据库抽象模式?
What database abstraction patterns are there?
我正在努力了解数据库抽象的常见模式。
到目前为止我发现:
- 数据库层
- 只是一个单独的 class,其中包含 SQL
- 不符合任何其他规则
- 数据访问对象 (DAO)
- 和上面一样,但是有一个传输对象代表数据库的列table
- create、delete、update 方法将填充的传输对象作为输入
- 查找方法可能接受字符串 (findByName) 或整数 (findByAge) 之类的输入,但总是 return 传输对象列表
- 资料库
- 对象集合的抽象
- 更接近领域模型
- 我需要在这里阅读更多内容
- 对象关系映射器
- 工具给我一个映射到后台数据库table的对象
- 该对象表示 table
中的一行
- a 属性 对象的更改导致更新
请不要太担心我对模式的快速解释。我还在了解阶段。
但是这个列表是否完整,还是这里缺少其他概念?
Martin Fowler's "Patterns of Enterprise Application Architecture" 是一本在社区中备受推崇的好书,其中记录了大约五十种设计模式,其中大约一半与数据库交互有关。它包括存储库、几种 DAO(或多或少涵盖了您的数据库层和 DAO)和对象关系映射器中的几种完整模式类别。所以这是一个很好的起点。
如果不简单地重复模式列表,很难在这个答案中总结更多 POEAA 的内容。还好the list can be found at Fowler's web site。不幸的是,那里的版权符号表明我不应该只把它包括在这里。
我正在努力了解数据库抽象的常见模式。
到目前为止我发现:
- 数据库层
- 只是一个单独的 class,其中包含 SQL
- 不符合任何其他规则
- 数据访问对象 (DAO)
- 和上面一样,但是有一个传输对象代表数据库的列table
- create、delete、update 方法将填充的传输对象作为输入
- 查找方法可能接受字符串 (findByName) 或整数 (findByAge) 之类的输入,但总是 return 传输对象列表
- 资料库
- 对象集合的抽象
- 更接近领域模型
- 我需要在这里阅读更多内容
- 对象关系映射器
- 工具给我一个映射到后台数据库table的对象
- 该对象表示 table 中的一行
- a 属性 对象的更改导致更新
请不要太担心我对模式的快速解释。我还在了解阶段。
但是这个列表是否完整,还是这里缺少其他概念?
Martin Fowler's "Patterns of Enterprise Application Architecture" 是一本在社区中备受推崇的好书,其中记录了大约五十种设计模式,其中大约一半与数据库交互有关。它包括存储库、几种 DAO(或多或少涵盖了您的数据库层和 DAO)和对象关系映射器中的几种完整模式类别。所以这是一个很好的起点。
如果不简单地重复模式列表,很难在这个答案中总结更多 POEAA 的内容。还好the list can be found at Fowler's web site。不幸的是,那里的版权符号表明我不应该只把它包括在这里。