当前位置: 首页 > news >正文

学习笔记13——Spring整合Mybatis、junit、AOP、事务

学习笔记系列开头惯例发布一些寻亲消息

链接:https://baobeihuijia.com/bbhj/

Mybatis - Spring(使用第三方包new一个对象bean)

  • 原始的Mybatis与数据库交互【通过sqlmapconfig来配置和连接】

    • 初始化SqlSessionFactory
    • 获得连接
    • 获取数据层接口
      • 需要一个类与数据中的数据进行匹配
      • 用注解形式进行增删改查
    • 关闭连接
  • 使用第三方包Spring-Mybatis,将mybatis改为spring的模式,不要再类内new SqlSessionFactory,而是把mybatis当作容器的对象可以用

    • 引入mybatis-spring第三方包来帮助整合,在注解方法中,如果要用第三方包则需要新建一个config然后在这个类中手动new一个bean
    • 通过Bean生成一个SqlSessionFactoryBean对象(加入扫描类型的包),与数据源建立连接
    • 生成MapperScannerConfigurer对象,获取数据层
    • 因此就可以通过注解的方式生成对象调用数据库了
    public class MybatisConfig {//定义bean,SqlSessionFactoryBean,用于产生SqlSessionFactory对象@Beanpublic SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();ssfb.setTypeAliasesPackage("com.itheima.domain");ssfb.setDataSource(dataSource);return ssfb;}//定义bean,返回MapperScannerConfigurer对象@Beanpublic MapperScannerConfigurer mapperScannerConfigurer(){MapperScannerConfigurer msc = new MapperScannerConfigurer();msc.setBasePackage("com.itheima.dao");return msc;}
    }
    

Junit-Spring(添加注解)

  • Junit与spring的整合(在测试类上添加注解,然后在类内直接@Autowired就可以将容器的对象引入测试)

    //设置类运行器
    @RunWith(SpringJUnit4ClassRunner.class)
    //设置Spring环境对应的配置类
    @ContextConfiguration(classes = SpringConfig.class)
    

AOP-Spring

新建一个class作为component,并且标记该类不是普通的类,是AOP类,打开config的AOP扫描

一般用在service拦截判断,拦截一批处理一批,然后将正确数据传入数据层

务方

[外链图片转存中…(img-OBMznC6o-1703559380919)]

  • 有些异常默认不参与回滚:需要@Transactional的时候手动添加

  • 事务传播行为有七种:REQUIRES_NEW是让该事务协调员不加入到事务管理员,而是自己开一个事务,失败了不会跟着回滚

    @Transactional(propagation = Propagation.REQUIRES_NEW)
    

    在这里插入图片描述

http://www.lryc.cn/news/270051.html

相关文章:

  • 【12月比赛合集】4场可报名的「创新应用」、「数据分析」和「程序设计」大奖赛,任君挑选!
  • Cisco模拟器-企业网络部署
  • WPF+Halcon 培训项目实战(12):WPF导出匹配模板
  • uniapp中uview组件库的丰富Upload 上传上午用法
  • Unity关于动画混合树(Blend Tree)的使用
  • 怎么下载landsat 8影像并在ArcGIS Pro中进行波段组合
  • 编程新手IDE
  • 如何将一个JSON字符串解析为JavaScript对象或值
  • idea配置docker推送本地镜像到远程私有仓库
  • Spring Boot学习随笔- 集成MyBatis-Plus(二)条件查询QueryWrapper、聚合函数的使用、Lambda条件查询
  • 十二、K8S之污点和容忍
  • llvm后端之指令选择源码分析
  • 【消息中间件】Rabbitmq消息可靠性、持久化机制、各种消费
  • aws-sdk-cpp通过bazel构建的S3_client轮子
  • 关于WPF MVVM 的详细使用过程以及注意的问题
  • 计算机视觉 全教程目录
  • 油猴脚本开发,之如何添加html和css
  • 【MATLAB】BiGRU神经网络时序预测算法
  • 57.0/初识 PhotoShopCS4(详细版)
  • [C#]opencvsharp进行图像拼接普通拼接stitch算法拼接
  • 《妙趣横生的算法》(C语言实现)-第10章算法设计与数据结构面试题精粹
  • (JAVA)-(网络编程)-初始网络编程
  • Observer观察者模式(组件协作)
  • 数据挖掘 聚类度量
  • [Angular] 笔记 24:ngContainer vs. ngTemplate vs. ngContent
  • ❀My排序算法学习之插入排序❀
  • 【算法题】30. 串联所有单词的子串
  • SAP-FI模块 处理自动生成会计凭证增强
  • Shell脚本-bin/bash: 解释器错误: 没有那个文件或目录-完整路径执行-“/”引发的脑裂
  • React MUI(版本v5.15.2)详细使用