有没有人知道与关系数据库接口的任何设计模式?例如,最好在方法中使用SQL内联,还是实例化传入数据的SQL对象并构建SQL语句?您是否有一个静态方法来返回连接字符串,每个方法只获取该字符串并连接到数据库,执行其操作,然后根据需要断开连接,或者您是否有其他负责连接,执行,断开连接等的结构?
换句话说,假设数据库已经存在,OO应用程序与之交互的最佳方式是什么?
感谢您的帮助。
答案 0 :(得分:4)
我推荐Martin Fowler撰写的这本书Patterns of Enterprise Application Architecture,以全面回顾这些问题的最常见答案。
答案 1 :(得分:3)
您可以使用一些模式:
答案 2 :(得分:1)
我个人不愿意在没有ORM的情况下使用数据库。 NHibernate是首选,但iBatis也是现有数据库的一个选项(并不是说NH无法处理现有数据库)。
答案 3 :(得分:0)
通过谷歌搜索DAL识别的所有内容都描述了一种设计模式。好像站在森林中间,想要看到一棵树。有几十个,如果不是几千个。
以下是从a book I'm reading开始寻找资源的报价。
......如果不讨论构建持久层的模式和最佳实践,就不可能讨论ORM。再说一次,如果不召集业内专家,即Martin Fowler,Eric Evans,Jimmy Nilsson,Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides,他们也不可能讨论ORM模式,其中最后四位是众所周知的在行业中作为四人帮(GoF)。本章的目的是解释和扩展这些大师创建的一些模式,并使用每个开发人员都能理解的语言提供具体的例子。
答案 4 :(得分:0)
通常,OO应用程序与关系数据库交互的最佳方式是通过ORM;虽然这本身不是设计模式,但它是一种具有特定使用模式的工具,因此它足够相似。对象关系映射(ORM)工具提供数据库与内存中一组对象之间的映射;通常,这些工具提供了管理会话,连接和事务等方法的方法。一个非常好用的ORM的好例子是Hibernate(.NET上的NHibernate)。
答案 5 :(得分:0)
根据我的经验,最好不要有任何SQL语句(大多数ORM都允许),最好不要了解连接细节(连接字符串等)。如果您可以使用完全相同的代码与任何主要数据库供应商合作,那就更好了。
答案 6 :(得分:0)
POEAA如果你打算自己动手,就会对这个问题有丰富的了解。