IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Spring(三) -> 正文阅读

[Java知识库]Spring(三)

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

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 事务

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

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:42:44  更:2022-09-24 20:45:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:27:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码