Spring-Dao与Spring-mvc不同?

时间:2012-01-28 03:59:22

标签: spring

如果我错了,我还在学习,请提出建议。

我有一个关于Spring Dao和spring MVC的问题。 我知道mvc - 模型,视图,控制器。我们可以说DAO是MVC架构的一部分。 但是,为什么Spring-DAO本身就是着名的呢?

为什么Spring-DAO对于与hibernet和JSF等其他结构的绑定有用呢?

3 个答案:

答案 0 :(得分:4)

MVC和DAO是在两个不同的应用层(ui层和数据访问层)上解决两个不同问题的两种不同模式。

为什么Spring-DAO本身就很有名?

考虑批处理应用程序,该应用程序不涉及UI但需要大量数据访问。 Spring Spring的DAO支持可以通过处理样板代码,简化事务支持等,大大简化数据访问层的编码。

答案 1 :(得分:2)

Spring Framework documentation解释了Spring DAO的目的如下:

  

Spring中的数据访问对象(DAO)支持旨在使您能够以一致的方式轻松使用JDBC,Hibernate,JPA或JDO等数据访问技术。这允许人们相当容易地在上述持久性技术之间切换,并且还允许人们编码而不必担心捕获特定于每种技术的异常。

这概述了Spring DAO的内容,并讨论了关于Spring DAO和Hibernate之间关系的部分问题。

另一方面,Spring MVC和JSF(主要)是关于实现网页和网站。它们与Spring DAO,JDBC,Hibernate,JPA,JDO等正交。也就是说,他们做了不同的事情。

  

我们可以说DAO是MVC架构的一部分

这是不正确的。 Spring DAO 可以与 Spring MVC一起使用,但它不是Spring MVC或“MVC架构”的一部分。

答案 2 :(得分:0)

春天DAO vs spring Mvc是完全不同的技术,用于不同的目的。您可以在弹簧MVC内部配置弹簧DAO,但它不是弹簧MVC的一部分。 Spring DAO只是一种数据持久化技术,如JPA,Hibernate。但是Spring DAO比JPA或hibernate更轻巧,更高效,因为如果你使用JPA,你需要使用JPQL进行数据库操作。如果你使用了hibernate,你需要使用HQL。需要额外的努力才能将JPQL或HQL转换为SQL,这个过程需要一些时间,因此它比Spring DAO更有效。您可以使用Spring DAO编写纯SQL语句并直接在数据库内执行

Spring MVC是基于Web的应用程序设计模式。模型,如您所述查看控制器。 Spring MVC不仅支持MVC框架java支持.Strust 2也基于MVC模式。但实施的方式是不同的。