解析SSH和SSM两大框架的组成及其区别( 二 )


7.session.getTransaction().commit();//提交事务
8.关闭Session
9.关闭SesstionFactory
4、MyBatis原理

解析SSH和SSM两大框架的组成及其区别

文章插图
 
MyBatis框架执行过程:
1、配置MyBatis的配置文件 , SqlMapConfig.xml(名称不固定)
2、通过配置文件 , 加载MyBatis运行环境 , 创建SqlSessionFactory会话工厂SqlSessionFactory 在实际使用时按单例方式
3、通过SqlSessionFactory创建SqlSession , SqlSession 是一个面向用户接口(提供操作数据库方法) , 实现对象是线程不安全的 , 建议sqlSession应用场合在方法体内
4、调用 sqlSession 的方法去操作数据 。如果需要提交事务 , 需要执行 SqlSession 的 commit() 方法
5、释放资源 , 关闭SqlSession
Struts2和SpringMVC两种框架对比
1.springmvc和struts2都是负责取转发的 , 但是两者针对request的请求上面区别很大 。springmvc是针对于方法级别的请求的 , 也就是一个方法对应于一个请求 , 属于方法拦截 , 请求的数据方法不共享;而struts2则是针对一个Action类来进行请求的 , 即一个Action类对应于一个请求 , 所以类拦截 , 请求的数据类共享
2.springmvc入口是一个servlet前端控制器(DispatcherServlet),struts2入口是一filter过滤器
3.springmvc的配置文件相对struts2来说较为少 , 容易上手 , 可以加快软件开发的速度
Hibernate 和 MyBatis 两种框架对比
相同之处
1.Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory , 然后由SessionFactory 生成Session , 最后由Session来开启执行事务和SQL语句 。其中SessionFactoryBuider , SessionFactory , Session的生命周期都是差不多的
2.Hibernate和MyBatis都支持JDBC和JTA事务处理
不同之处
1.Hibernate是一种O/R关系型 , 即完成数据库表和持久化类之间的映射 , 而MyBitas是针对的SQL-Maping , 个人理解是一种Hibernate把数据库给封装好以后 , 可以调用相应的数据库操作语句HQL , 而MyBitas则是用的原始的数据库操作语句
2.针对高级查询 , Mybatis需要手动编写SQL语句 , 以及ResultMap 。而Hibernate有良好的映射机制 , 开发者无需关心SQL的生成与结果映射 , 可以更专注于业务流程
3.Hibernate优化起来相对MyBitas较难 , 而且Hibernate掌握起来相对MyBitas较难 , 但是Hibernate数据库移植性很好 , MyBatis的数据库移植性不好 , 不同的数据库需要写不同SQL
Spring家族:
解析SSH和SSM两大框架的组成及其区别

文章插图
 
三、总结SSM和SSH相同之处在于都是用Spring依赖注入DI来管理各层的组件 , 并且都是使用面向切面编程AOP来管理事物、日志、权限等 。不同之处在于MVC实现方式 , 以及ORM持久化方面不同(Hiibernate与Mybatis) 。SSM越来越轻量级配置 , 将注解开发发挥到极致 , 且ORM实现更加灵活 , SQL优化更简便;而SSH较注重配置开发 , 其中的Hiibernate对JDBC的完整封装更面向对象 , 对增删改查的数据维护更自动化 , 但SQL优化方面较弱 , 且入门门槛稍高 。
如果觉得不错有帮助的 , 可以转发点赞关注一下 。谢谢!




推荐阅读