雏凤清声网

Spring(三)

Spring(三)

视频链接:https://www.bilibili.com/video/BV1q94y1o7ts?vd_source=9545770e4a2968c05878ffac8589ec6c
视频选集:P77— P101

文章目录

  • Spring 集成MyBatis【SM整合】
  • 1.SM整合之创建表
  • 2.SM整合的步骤
  • 3.SM整合之pom.xml文件的修改
  • 4.添加数据库的可视化
  • 5.SM整合
    • 5.1 添加MyBatis相应的模板(SqlMapconfig.xml和XXXMapper.xml文件)
    • 5.2 添加SqlMapConfig.xml文件(MyBatis核心配置文件)
    • 5.3 添加applicationContext_mapper. xml
    • 5.4 添加applicationContext_service. xml
    • 5.5 Users实体类开发
    • 5.6 mapper层的开发
    • 5.7 service层的开发
    • 5.8 测试
    • 5.9 账户(account)增加一整套
  • 6.事务
    • 6.1 添加注解事务效果演示
    • 6.2 添加不回滚属性设置
    • 6.3 @Transactional参数详解
    • 6.4 Spring添加事务的两种方式
    • 6.5 事务的隔离级别
    • 6.6 为什么在MyBatis种添加事务管理器
    • 6.7 事务的传播特性概念
    • 6.8 改造项目完成嵌套调用【事务的传播特性讲解】
    • 6.9 声明式事务的实现
    • 6.10 设置事务处理的优先级
  • 7.课程总结
    • 7.1 什么是Spring框架以及优点
    • 7.2 IOC
    • 7.3 AOP 面向切面编程
    • 7.4 事务

Spring 集成MyBatis【SM整合】

将MyBatis与 Spring进行整合,主要解决的问题就是将 SqlSessionFactory对象交由Spring来管理。所以,该整合只需要将SqlSessionFactory的对象生成器SqlSessionFactoryBean注册在 Spring 容器中,再将其注入给Dao 的实现类即可完成整合。实现 Spring 与 MyBatis的整合。常用的方式:扫描的 Mapper动态代理。Spring 像插线板一样,mybatis框架是插头,可以容易的组合到一起。插线板spring插上 mybatis,两个框架就是一个整体。

1.SM整合之创建表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.SM整合的步骤

  1. 建表
  2. 搭建项目,选择quickstart模板
  3. 修改目录
  4. 修改pom.xml文件,添加相关的依赖
  5. 添加MyBatis相应的模板(SqlMapconfig.xml和XXXMapper.xml文件)
  6. 添加SqlMapConfig.xml文件(MyBatis核心配置文件),并拷贝jdbc.propertiest属性文件到resources目录下
  7. 添加applicationContext_mapper. xml
  8. 添加applicationContext_service. xml
  9. 添加Users实体类,Accounts实体类
  10. 添加mapper包,添加UsersMapper接口和UsersMapper.xml文件并开发
  11. 添加service包,添加UsersService接口和UsersServiceImpl实现类
  12. 添加测试类进行功能测试

3.SM整合之pom.xml文件的修改

添加的依赖:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
build:
在这里插入图片描述

4.添加数据库的可视化

在这里插入图片描述
在这里插入图片描述
最终效果:
在这里插入图片描述

5.SM整合

5.1 添加MyBatis相应的模板(SqlMapconfig.xml和XXXMapper.xml文件)

File->Settings
在这里插入图片描述

5.2 添加SqlMapConfig.xml文件(MyBatis核心配置文件)

在这里插入图片描述
最终效果:
在这里插入图片描述

5.3 添加applicationContext_mapper. xml

这个文件主要是:

  1. 读取属性文件jdbc.properties
  2. 创建数据源
  3. 配置SqlSessionFactoryBean类
  4. 注册mapper.xml文件

在这里插入图片描述
拷贝jdbc.propertiest属性文件到resources目录下
在这里插入图片描述

在这里插入图片描述

编写applicationContext_mapper. xml文件:
在这里插入图片描述
然后根据applicationContext_mapper. xml文件修改SqlMapConfig.xml文件:【两套配置会冲突】

在这里插入图片描述
在这里插入图片描述

5.4 添加applicationContext_service. xml

先创建文件:
在这里插入图片描述在这里插入图片描述
编写:
在这里插入图片描述

5.5 Users实体类开发

在这里插入图片描述

5.6 mapper层的开发

创建接口:
在这里插入图片描述
在同一目录下,定义相同名字的xml文件:【使用模板】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.7 service层的开发

定义接口:
在这里插入图片描述
实现类:
在这里插入图片描述

5.8 测试

在service.xml文件中导入mapper.xml文件
在这里插入图片描述
在这里插入图片描述
运行结果:
在这里插入图片描述
在这里插入图片描述

5.9 账户(account)增加一整套

创建账户类:
在这里插入图片描述
在mapper中创建接口:
在这里插入图片描述
在同一目录下,定义相同名字的xml文件:【使用模板】
在这里插入图片描述
在service中创建接口:
在这里插入图片描述
实现类:
在这里插入图片描述
测试:
在这里插入图片描述
在这里插入图片描述

6.事务

6.1 添加注解事务效果演示

当项目中出现问题时候,数据依然能增加成功
在这里插入图片描述
在这里插入图片描述
我们希望无论出现什么错误都不添加:添加注解事务
在这里插入图片描述
在这里插入图片描述
然后再进行插入数据:【虽然显示插入成功,但是后面依然撤销】
在这里插入图片描述

6.2 添加不回滚属性设置

如何在当前事务中规定,发生错误不撤销

在这里插入图片描述

6.3 @Transactional参数详解

在这里插入图片描述

6.4 Spring添加事务的两种方式

  • 注解式的事务
    使用@Transactional注解完成事务控制,此注解可添加到类上,则对类中所有方法执行事务的设定.此注解可添加到方法上,只是对此方法执行事务的处理.
  • 声明式事务(必须掌握)
    在配置文件中添加一次,整个项目遵循事务的设定

6.5 事务的隔离级别

在这里插入图片描述
使用数据库默认的隔离级别isolation = Isolation.DEFAULT

在这里插入图片描述

6.6 为什么在MyBatis种添加事务管理器

在这里插入图片描述
事务管理器用来生成相应技术的连接+执行语句的对象.
在这里插入图片描述
注意:使用了DataSourceTransactionManager就可以生成SqlSession,然后完成提交和回滚

6.7 事务的传播特性概念

多个事务之间的合并,互斥等都可以通过设置事务的传播特性来解决.

在这里插入图片描述
在这里插入图片描述

6.8 改造项目完成嵌套调用【事务的传播特性讲解】

项目中的所有事务,必须添加到业务逻辑层上
UsersServiceoImpl为A事务,AccountsServiceImpl为B事务,现在让A事务包含B事务

在A事务中做改变:
在这里插入图片描述
在B事务中先将@Transactional注销掉
在这里插入图片描述
测试:

  1. A和B都没有事务
    测试Users【因为A事务包含B事务】
    在这里插入图片描述
    没有事务控制,两个都插入成功,虽然在控制台报错

  2. A无事务,B有REQUIRED
    在这里插入图片描述
    A插入成功,B回滚,没有插入成功

  3. A有REQUIRED,B无事务
    在这里插入图片描述
    A,B都没成功,都回滚了

后面的和前面的操作方式类似,最终汇总:
在这里插入图片描述

6.9 声明式事务的实现

注解式事务可能对一个类中的所有的方法都影响
Spring非常有名的事务处理方式.声明式事务.要求项目中的方法命名有规范

在这里插入图片描述
配置事务切面时可以使用通配符*来匹配所有方法

新的配置文件的框架:
在这里插入图片描述
编写后:
在这里插入图片描述
将注解全去掉:
在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述

还可以加不回滚:
在这里插入图片描述

6.10 设置事务处理的优先级

在某个类中通过注解屏蔽声明式设定【近水楼台先得月】,局部影响到整体
在这里插入图片描述

设置局部的优先级:
在这里插入图片描述

设置全局优先级:
在这里插入图片描述

7.课程总结

7.1 什么是Spring框架以及优点

在这里插入图片描述

7.2 IOC

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.3 AOP 面向切面编程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
AspectJ框架:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.4 事务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

未经允许不得转载:雏凤清声网 » Spring(三)