SSH框架和SSM框架区别
- SSH: Struts(controller) ,spring 事务层(service), hibernate持久层(dao)
- SSM: springMVC(controller) ,spring 业务层(service), MyBatis持久层(dao)
相同点:
1、Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。
2、Hibernate和MyBatis都支持JDBC和JTA事务处理。
不同点:
1、MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
2、MyBatis容易掌握,而Hibernate门槛较高。
3、Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
4、Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
5、Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
6、Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳,更新操作不能指定刷新指定记录,会清空整个表,但是也可以使用第三方缓存。
7、Hibernate 封装性好,屏蔽了数据库差异,自动生成SQL语句,应对数据库变化能力较弱,SQL语句优化困难。
8、MyBatis仅实现了SQL语句和对象的映射,需要针对具体的数据库写SQL语句,应对数据库变化能力较强,SQL语句优化较为方便。
链接: link.