2009-06-16 71 views
2

有谁知道任何设计模式与关系数据库接口?例如,将SQL嵌入到方法中,还是实例化一个SQL对象,并在其中传递数据并构建SQL语句会更好?你有一个静态方法来返回连接字符串,每个方法只是获取该字符串并连接到数据库,执行其操作,然后根据需要断开连接,或者您有其他负责连接,执行,断开连接等的结构?与关系数据库接口的设计模式?

换句话说,假设数据库已经存在,OO应用程序与它进行交互的最佳方式是什么?

感谢您的任何帮助。

回答

0

您将通过Google搜索DAL识别的所有内容都描述了一种设计模式。看起来像站在森林中间​​,并要求看一棵树。有几十个甚至几千个。

以下是a book I'm reading的报价,以寻找资源。

......没有谈论构建持久层的模式和最佳实践,就不可能讨论ORM。再一次,也不可能在没有召集行业中的大师,即Martin Fowler,Eric Evans,Jimmy Nilsson,Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides的情况下讨论ORM模式,后四者是已知的在行业中担任四人帮(GoF)。本章的目的是解释和扩展由这些专家创建的一些模式,并提供使用每个开发人员都能理解的语言的具体示例。

+0

这个引用来自哪本书的名字是什么? – Jayson 2009-06-16 20:54:15

1

我个人很讨厌在没有ORM的情况下使用数据库。 NHibernate更可取,但iBatis也是现有数据库的一种选择(并不是说NH不能处理现有的数据库)。

0

通常,面向对象应用程序与关系数据库接口的最佳方式是通过ORM;虽然这本身不是设计模式,但它是一种具有特定使用模式的工具,因此它非常相似。对象关系映射(ORM)工具提供数据库与内存中一组对象之间的映射;通常,这些工具提供了用于管理会话,连接和事务等事务的手段。一个很好的例子就是Hibernate(NHibernate on .NET)。

0

以我的经验,最好是有根本没有SQL语句(大多数奥姆斯将允许) ,最好不要有任何连接细节知识(连接字符串等)。更好的是,如果您可以拥有与任何主要数据库供应商完全相同的代码片段。

0

POEAA在这个问题上有丰富的知识,如果你打算推出自己的。