1.1Spring-SpringMVC-Mybatis框架简介

news/2024/6/16 21:52:55 标签: spring, mybatis, java, 数据库

一.Spring框架

1.1SpringIOC

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

java">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可以定义逻辑视图,通过其提供的视图解析器就能方便找到对应的视图进行渲染,或者使用消息转换的功能。


http://www.niftyadmin.cn/n/1865518.html

相关文章

Java设计模式(反射技术)

java反射技术应用广泛&#xff0c;能够配置&#xff1a;类的全限定名、方法和参数、完成对象的初始化、反射一些方法。java反射内容繁多&#xff0c;包括对象构建、反射方法、注解、参数、接口等。 1 通过反射构建对象 java中允许通过反射配置信息构建对象。例如&#xff1a;…

Java设计模式(动态代理模式和责任链模式)

动态代理的意义在于生成一个占位&#xff0c;代理真实对象&#xff0c;从而控制正式对象的访问。代理的作用是在真实对象访问之前或者之后加入对应的逻辑&#xff0c;或者根据其他的规则控制是否使用真实对象。代理需分为两步&#xff1a;代理对象和真实对象建立代理关系&#…

Java设计模式(观察者模式)

观察者模式又称为发布订阅模式&#xff0c;是对象的行为模式。观察者模式定义了一对多的依赖关系&#xff0c;让多个观察者对象同时监视着被观察者的状态&#xff0c;当被观察者的状态发生变化会通知所有观察者 并让其自动更新自己。观察者模式示例&#xff1a; 类似这样&…

Java设计模式(工厂模式和抽象工厂模式)

1.普通工厂模式 有个IProduct 产品接口 &#xff0c;它下面有 5个实现类Product1、Product2、 Product3 、Product4、Product5。它们属于1个大类&#xff0c;可以通过1个工厂去管理它们的生成&#xff0c;但是由于类型不同&#xff0c;所以初始化有所不同 。为了方便使用产品工…

Java设计模式(建造者模式)

建造者模式属于对象的创建模式。可以将一个产品的内部表象&#xff08;属性〉与产品的生成过程分割开来&#xff0c;从而使 建造过程生成具有不同的内部表象的产品对象。Builder 模式是种分步构建对象的模式。 实例&#xff1a; 首先&#xff0c;创建一个 TicketHe per 对象&am…

认识Mybatis核心组件

持久层可以将业务数据存储到磁盘&#xff0c;具备长期存储能力&#xff0c;只要磁盘不损坏&#xff08;大部分的重要数据都会有相关的备份机制&#xff09;&#xff0c;在断电或者其他情况下&#xff0c;重新开启系统仍然可以读取这些数据。Mybatis 最大的成功主要有三点&#…

MyBatis的解析和运行原理

MyBatis运行过程分为两步&#xff1a; 读取配置文件缓存到Configuration对象&#xff0c;用以创建SqlSessionFactory&#xff1b;SqlSession的执行过程 1. 构建SqlSessionFactory过程 SqlSessionFactory是MyBatis的核心类之一&#xff0c;提供创建MyBatis的核心接口SqlSessi…

装配SpringBean

1.依赖注入的三种方式 实际环境中实现 IoC 容器的方式主要分为两大类&#xff0c; 一类是依赖查找&#xff0c;依赖查找是通过资源定位&#xff0c;把对应的资源查找回来。另一类则是依赖注入&#xff0c;Spring主要使用的是依赖注入。依赖注入可分为3种方式&#xff1a; 构造…