您的位置:首页 > 编程语言 > Java开发

struts2与springMVC区别、mybatis和hibernate的区别

2018-03-18 21:40 561 查看

Struts VS springMVC

       1、 Struts2是一个请求一个Action,SpringMVC是单例模式的
        2、Struts2是基于类的横切,SpringMVC基于方法(可以和上条结合起来思考)粒度更细
        3、Struts2入口是Filter,springMVC入口是Servlet。则两者实现机制不同
        4、SpringMVC开发速度和性能较优于Struts2,流程更容易理解
        5、spring mvc处理ajax请求,直接通过返回数据,方法中使用注解@ResponseBody,spring mvc自动帮我们对象转换为JSON数据。

mybatis和hibernate

         1、hibernate 是一个标准的ORM框架(对象关系映射框架),不需要程序写sql,sql语句自动生成,对sql语句进行优化、修改比较困难。全自动的、完全面向对象的持久层框架
         2、mybatis专注于sql本身,需要程序员自己编写sql语句,sql修改、优化比较方便。是一个不完全的ORM框架,虽然程序员自己写sql,mybatis也可以实现映射(输入映射,输出映射)半自动化的持久层框架。
            3、Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
            4、Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
            5、Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。

            6、Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。
            7、MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
比如:一个项目中用到的复杂查询基本没有,就是简单的增删改查,这样选择hibernate效率就很快了,因为基本的sql语句已经被封装好了,根本不需要你去写sql语句,这就节省了大量的时间,但是对于一个大型项目,复杂语句较多,这样再去选择hibernate就不是一个太好的选择,选择mybatis就会加快许多,而且语句的管理也比较方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息