学习笔记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.rhkb.cn/news/227419.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter吞吐量控制器总结

吞吐量控制器(Throughput Controller) 场景: 在同一个线程组里, 有10个并发, 7个做A业务, 3个做B业务,要模拟这种场景,可以通过吞吐量模拟器来实现。 添加吞吐量控制器 用法1: Percent Executions 在一个线程组内分别建立两个吞吐量控制器, 分别放业务A和业务B …

【三维目标检测/自动驾驶】IA-BEV:基于结构先验和自增强学习的实例感知三维目标检测(AAAI 2024)

系列文章目录 论文:Instance-aware Multi-Camera 3D Object Detection with Structural Priors Mining and Self-Boosting Learning 地址:https://arxiv.org/pdf/2312.08004.pdf 来源:复旦大学 英特尔Shanghai Key Lab /美团 文章目录 系列文…

数据预处理时,怎样处理类别型特征?

1. 序号编码 序号编码通常用于处理类别间具有大小关系的数据。例如成绩,可以分为低、中、高三档,并且存在“高>中>低”的排序关系。序号编码会按照大小关系对类别型特征赋予一个数值ID,例如高表示为3、中表示为2、低表示为1&#xff0…

Spring系列学习四、Spring数据访问

Spring数据访问 一、Spring中的JDBC模板介绍1、新建SpringBoot应用2、引入依赖:3、配置数据库连接,注入dbcTemplate对象,执行查询:4,测试验证: 二、整合MyBatis Plus1,在你的项目中添加MyBatis …

elasticsearch系列三:常用查询语法

概述 前几篇我们介绍了如何在es中存储数据,如何更加合理的存储数据,今天我们来说下常用的查询语法,如何实现mysql中的等于、大于、小于、and 、or、in等方式。 案例 我们以kibana为例,比如sql中的等于,在es中可以用…

【1】Docker详解与部署微服务实战

Docker 详解 Docker 简介 Docker 是一个开源的容器化平台,可以帮助开发者将应用程序和其依赖的环境打包成一个可移植、可部署的容器。Docker 的主要目标是通过容器化技术实现应用程序的快速部署、可移植性和可扩展性,从而简化应用程序的开发、测试和部…

计算机组成原理之BCD码和奇偶校验码小白秒懂

BCD码简介 原文文档下载https://download.csdn.net/download/m0_46579394/88681870 BCD码也称二进码十进数,BCD码可分为有权码和无权码两类。其中,常见的有权BCD码有8421码、2421码、5421码,无权BCD码有余3码、余3循环码、格雷码。8421BCD码…

数据分析硬核工具Origin各版本安装指南

下载链接 https://pan.baidu.com/s/12mENFtRFdNaLzVKmE6w_Uw?pwd0531 1.鼠标右击【Origin 2022(64bit)】压缩包(win11及以上系统需先点击显示更多“选项”)选择【解压到 Origin 2022(64bit)】。 2.双击打开解压后的【Origin 2022(64bit)】文件夹。 3.…

最新AI系统ChatGPT网站H5系统源码,支持AI绘画,GPT语音对话+ChatFile文档对话总结+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

【基础篇】七、线程上下文类加载器打破双亲委派机制

文章目录 1、SPI机制2、JDBC案例之SPI机制3、打破双亲委派机制:线程上下文类加载器4、打破双亲委派机制:osgi模块化5、JDK9之后的类加载器6、小总结 1、SPI机制 SPI,Service Provider Interface,是JDK内置的一种服务提供发现机制…

NModbus-一个C#的Modbus协议库实现

NModbus-一个基于C#实现的Modbus通信协议库 最近在学习C#的时候,因为之前做过环保设备时使用C做过环保设备采集使用到了Modbus协议,当时看了一下基于C语言开发的libmodbus库。所以特意搜索看了一下C#下有什么Modbus协议库,在Github上面找了一…

Strateg策略模式(组件协作)

策略模式(组件协作) 链接:策略模式实例代码 注解 目的 正常情况下,一个类/对象中会包含其所有可能会使用的内外方法,但是一般情况下,这些常使用的类都是由不同的父类继承、组合得来的,来实现…

Feign远程调用

Feign远程调用 Fegin的使用步骤如下&#xff1a; 1&#xff09;引入依赖 我们在order-service服务的pom文件中引入feign的依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign&…

SadTalker数字人增加视频输出mp4质量精度

最近在用数字人简易方案&#xff0c;看到了sadtalker虽然效果差&#xff0c;但是可以作为一个快速方案&#xff0c;没有安装sd的版本&#xff0c;随便找了个一键安装包 设置如上 使用倒是非常简单&#xff0c;但是出现一个问题&#xff0c;就是输出的mp4都出马赛克了 界面上却…

基于图搜索的自动驾驶规划算法 - BFS,Dijstra,A*

本文将讲解BFS&#xff0c;Dijstra&#xff0c;A*&#xff0c;动态规划的算法原理&#xff0c;不正之处望读者指正&#xff0c;希望有兴趣的读者能在评论区提出一些这些算法的面试考点&#xff0c;共同学习&#xff0c;一起进步 0 图论基础 图有三种&#xff1a;无向图、有向…

基于 Linux 的批量上传本地 Git 仓库到 Github 的实践

基于 Linux 的批量上传本地 Git 仓库到 Github 的实践 一、需求二、上传本地 Git 仓库2.1 初始版本2.2 优化版本 三、 GitHub 创建空仓库3.1 初始版本3.2 优化版本 四、Gitee 创建空仓库 一、需求 app目录下的每个文件夹都是一个git仓库&#xff0c;如何使用shell脚本将所有gi…

Java核心知识点1-java和c++区别、隐式和显示类型转换

java和c区别 java通过虚拟机实现跨平台特性&#xff0c;但c依赖于特定的平台。java没有指针&#xff0c;它的引用可以理解为安全指针&#xff0c;而c和c一样具有指针。java支持自动垃圾回收&#xff0c;而c需要手动回收。java不支持多重继承&#xff0c;只能通过实现多个接口来…

自动驾驶学习笔记(二十三)——车辆控制模型

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo开放平台9.0专项技术公开课》免费报名—>传送门 文章目录 前言 运动学模型 动力学模型 总结…

Prometheus快速入门实战

介绍 prometheus 受启发于 Google 的 Brogmon 监控系统&#xff08;相似 kubernetes 是从 Brog 系统演变而来&#xff09;。2016 年 5 月继 kubernetes 之后成为第二个加入 CNCF 基金会的项目&#xff0c;同年 6 月正式发布 1.0 版本。2017 年底发布基于全新存储层的 2.0 版本…

nginx设置跨域访问

目录 一&#xff1a;前端请求 二&#xff1a;后端设置 网站架构前端使用jquery请求&#xff0c;后端使用nginxphp-fpm 一&#xff1a;前端请求 <script> $.getJSON(http://nngzh.youjoy.com/cc.php, { openid: sd, }, function(res) { alert(res); if(res.code 0) …