封装数据库访问是否是一种好做法

Is it a good practice to encapsulate the database access

提问人:SIGSTP 提问时间:12/12/2013 最后编辑:James A MohlerSIGSTP 更新时间:12/13/2013 访问量:282

问:

我正在开发一个应用程序。 我在某处读到不应该直接访问数据库,但应该有一种层,应该通过它访问数据库。

我不知道确切的原因。

如果您能为我提供一些推理或链接,那就太好了。

与数据库 语言无关 的封装

评论

0赞 12/14/2013
这应该对你有所帮助。这是一个之前发布的问题,与您的问题相似。stackoverflow.com/questions/936172/......

答:

1赞 Balaji Reddy 12/13/2013 #1

是的,从其他部分抽象/封装数据库访问逻辑确实是一个很好的做法。不应直接访问数据访问层或向所有人公开数据访问层。这意味着在设计应用程序时,必须考虑“分层架构”这个重要因素,例如业务层、服务层、表示层等等。工作流,如服务层(如果其 Web 应用程序)调用业务层,业务层调用数据访问层。所有这些层都应该彼此非常抽象,或者应该只对最直接的层(所谓的客户端)访问。

回答您的问题:假设您当前的数据访问实现基于普通 JDBC/ODBC。一段时间后,您的需求增长;您计划使用一些 ORM 框架来实现它。在这种情况下,在用不同 API 编写的不同数据访问逻辑之间切换/迁移非常容易,而不会影响应用程序的其余部分,而且其他层不知道您的更改,因为您的设计本质上是非常抽象的。

底线:始终针对抽象接口而不是针对实现。

希望这对您有所帮助,并感谢您发表评论