我想知道Spring DAO的典型用例是什么,我们可以在不同的持久性框架之间轻松切换。
除了抽象样板代码(对于JDBC,Hibernate之类),为什么任何应用程序都想要如此频繁地更改其ORM框架?
答案 0 :(得分:2)
通过使用具有不同DAO接口的DAO模式,可以模拟DAO实现。通过这种方式,您可以提高代码的可测试性,因为您可以编写不需要数据库访问的测试。
不仅要经常在ORM框架之间切换,而且还要在强制更改ORM时减少工作量。
另一个原因是,您可能拥有不同的数据源,例如数据库,Web服务或文件系统。在这种情况下,您不会抽象ORM,而只是抽象机制。
答案 1 :(得分:1)
我认为DAO背后的真正重要思想是,您只有一个位置,其中特定实体的所有数据访问相关代码都位于其中。这使得您的持久层的测试和重构更容易,并且您的代码更易于阅读。
此外,它使代码更易读。想想团队中应该实现功能的新开发人员。如果她需要访问数据库,她会查看数据访问方法的dao。 如果将数据访问代码分散到不同的服务中,那么有人会产生代码重复的风险很高。