码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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 事务

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

  • 相关阅读:
    Electron-Vue创建项目及踩坑记录
    【100天精通Python】Day70:Python可视化_绘制不同类型的雷达图,示例+代码
    【JavaScript进阶】 一步一步带你手写 Promise,理解核心的异步链式调用及JS执行机制原理
    Win11怎么设置让CPU性能全开?Win11CPU怎么设置高性能模式?
    一文搞懂双链表
    R语言使用data.table包的fread函数读取(加载)csv数据为data.table格式、将数据中所有缺失值替换为0(或者其它固定值)
    ERP编制物料清单 基础
    【算法面试必刷Java版七】链表中环的入口结点
    java学习day36(redis12)哨兵
    【Docker】傻瓜式开发
  • 原文地址:https://blog.csdn.net/weixin_49883619/article/details/126929617
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号