1、SpringMVC   

Spring MVC 是一种前端控制器的实现形式,它的基本概念分为静态概念和动态概念。

    (1)静态概念:

(总结摘录)SpringMVC理解、mybatis框架、shibernate与mybatis对比

        ①当浏览器用户的请求,通过DispatcherServlet进行分发,到达Cotroller层。

        ②到达Controller层后,生产出我们所需要的业务数据Model。

        ③然后Model层在通过DispatcherServlet进行传递给我们的View层,最终完成页面展示。

(2)动态概念:

(总结摘录)SpringMVC理解、mybatis框架、shibernate与mybatis对比

 思路:

 

①当浏览器的请求Request到达DispatcherServlet。(因为DispatcherServlet也是一个Servlet,所有的Request能够被它拦截到)

②然后DispatcherServlet会搜索寻找到一个Mapping,也就是HandlerMaping,并将其功能代理给了HandlerMaping。

③然后HandlerMaping根据本身的配置,找到需要用到的Controller和HandlerInterceptor。

④然后把Controller和HandlerInterceptor制成一个可执行的链条,也就是Handler/HandlerAdapter的适配器。

⑤Handler/HandlerAdapter的适配器将信息返回给了DispatcherServlet,DispatcherServlet便开始调用这个一般化的处理器Handler/HandlerAdapter。

⑥Controller的目的就是生成ModelAndView模型,并且返还给DispatcherServlet。

DispatcherServlet是不会管理视图显示的,所以它就调用ViewResolver视图解析器并通过该方法返回到View对象(ViewResolver的作用是告诉DispatcherServlet哪个视图是用来解析当前这种场景的)。

⑧然后ModelAndView将模型数据传递到View,完成了页面呈现。

                                    (总结摘录)SpringMVC理解、mybatis框架、shibernate与mybatis对比

2、Mybatis框架

       Mybatis和hibernate框架一样,是一款开源的ORM框架。

(1)mybatis框架原理

    ①mybatis支持普通的SQL查询、存储过程和高级映射的持久层框架。

    ②mybatis将大量的sql语句,从程序里面剥离出来,配置在配置文件中,实现sql的灵活配置。

 (2)OGNL表达式

    (总结摘录)SpringMVC理解、mybatis框架、shibernate与mybatis对比

(总结摘录)SpringMVC理解、mybatis框架、shibernate与mybatis对比

(3)Mybatis框架和hibernate框架对比:

“全自动化”的hibernate对数据库结构,提供了完整的封装和全套的映射。

②“半自动化”的mybatis提供的ORM机制,对业务逻辑实现而言,面对的是纯粹的java对象。

③Hibernate会自动生成sql语句,而mybatis不会再运行期间自动生成sql语句执行。

   相同点:

        Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。

(总结摘录)SpringMVC理解、mybatis框架、shibernate与mybatis对比

                                                    Hibernate和MyBatis都支持JDBC和JTA事务处理。

不同点:

    hibernate优势:

    Hibernate的DAO层开发比mybatis简单,Mybatis需要维护和结果映射。

    Hibernate对对象的维护和缓存要比mybatis好,对增删改查的对象维护方便。

    Hibernate数据库移值性很好,mybatis数据库移植性不好,不同数据库需要写不同SQL。

    Hibernate有更好的二进制缓存机制,可以使用第三方缓存。Mybatis本身提供的缓存机制不佳。

mybatis优势:

    mybatis可以进行更为细致的sql优化,减少查询字段。

    mybatis容易掌握,而hibernate门槛较高。

总结:

    mybatis:小巧、方便、高效、简单、直接、半自动化。

   hibernate:强大、方便、高效、复杂、间接、全自动化。


相关文章:

  • 2022-12-23
  • 2021-11-20
  • 2021-06-01
  • 2021-10-16
  • 2021-11-16
  • 2021-05-10
  • 2021-09-05
  • 2021-10-17
猜你喜欢
  • 2021-04-19
  • 2022-12-23
  • 2021-04-03
  • 2021-09-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案