1.1Spring-SpringMVC-Mybatis框架简介

一.Spring框架

1.1SpringIOC

IOC是一个容器,Spring中,一切java资源都是java Bean容器,容器的目标是管理Bean和他们之间的关系。在SpringIOC里装载着各种Bean,包含Java Bean的建立、事件、行为等都是由IOC容器管理。Spring依靠描述完成对象的创建以及依赖关系。
例子:
插座依赖国家标准(可以定义为一个接口,Socket)去定义,目前有两种插座(Scoket1和Socket2)。
在这里插入图片描述
当使用插座1时,有如下代码:

Socket socket = new Socket1();
user.setSocket(socket);
user.userSocket();

国家标准插座接口和插座1绑在一起。如果有其他插座则需要修改Socket1(),每次改变都需要进行修改,所以SpringIOC可以解决该问题。
SpringIOC通过使用配置的方式,让SpringIOC容器通过配置找到插座。使用XML对插座和用户的应用插座进行描述。

<bean id="socket" class="Socket1"/>
<bean id="user" class="xxx.User">
	<property name="socket" ref="socket"/>
</bean>

Socket接口可以不依赖任何插座,通过配置进行切换。控制反转如下图所示。
在这里插入图片描述
上图的配置信息是“我要插座2”,则SpringIOC使用插座2通过国家标准插座接口注入使用者,控制权在SpringIOC容器中,其根据描述找到使用者需要的资源。该方式的好处是不再依赖某个实现类,需要使用某个实现类时通过配置信息完成。不需要使用new进行创建对象,不需要找资源,需要向SpringIOC容器描述所需资源,SpringIOC自己会找到需要的资源。刚方法还提供对Java Bean生命周期的管理,延迟加载。

1.2 SpringAOP

SpringAOP用于数据库事务的编程。在SpringAOP实现的数据库事务管理是以异常作为消息的。在默认的情况下只需要Spring接收到异常信息就会对数据库的事务进行回滚,这样就会知道Spring的事务管理中只要让它接收到异常信息就会回滚事务,不需要通过代码实现这个过程。

二.Mybatis介绍

Mybatis优势在于灵活,Mybatis的数据访问层DAO不需要实现类,只需要一个接口和XML。Mybatis提供自动映射、动态SQL、级联、缓存、注解、代码和SQL分离等特性,进行SQL优化。
对Hibernate和Mybatis进行比较:

2.1 Hibernate介绍

Mybatis和Hibernate都需要POJO和数据库表的映射。
在这里插入图片描述
将POJO对象和表相互映射的框架称为对象关系映射,Hibernate基本不需要编写SQL就可以通过映射关系操作数据库,是一种全表映射。
Hibernate的映射文件内容如下所示。
在这里插入图片描述
Hibernate使用Session操作数据库数据。
在这里插入图片描述

2.2 Mybatis

Mybatis不屏蔽SQL,可以制定SQL规则,更加精确定义SQL。Mybatis与数据库表的映射文件如下所示。
在这里插入图片描述resultMap用于定义映射规则,mapper元素中的namespace属性要和一个接口的全限定名保持一致,SQL的id需要和接口定义的方法完全一致。定义Mybatis映射文件如下所示。
在这里插入图片描述
Mybatis对于数据库数据的操作如下。
在这里插入图片描述

2.3 两者的区别

Hibernate和Mybatis在业务逻辑层上基本一致,对于映射层,Hibernate的配置不需要接口和SQL,不需要大量SQL,并且提供日志、缓存、级联等。Mybatis可以随意碎屑SQL,支持动态SQL、处理列表、动态生成表名等,支持存储过程,灵活定义查询语句。

三.SpringMVC介绍

SpringMVC接口清晰,与IOC和AOP无缝对接。MVC模式将应用程序分为不同的方面,提供这些元素之间的松耦合。Model封装应用程序的数据和他们组成的POJO;View将模型数据渲染到视图Controller将处理用户请求并建立适当的模型将其传递到视图渲染。
SpringMVC可以定义逻辑视图,通过其提供的视图解析器就能方便找到对应的视图进行渲染,或者使用消息转换的功能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值