Day46(16)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project02\tlias-web-management

news/2025/11/23 21:52:12/文章来源:https://www.cnblogs.com/David0919/p/19261637

事务管理

image-20251123195038813

@Transactional(rollbackFor = {Exception.class})//事务管理的注解 - 默认出现RuntimeException才会回滚
@Override
public void save(Emp emp) throws Exception{//1.保存员工的基本信息emp.setCreateTime(LocalDateTime.now());emp.setUpdateTime(LocalDateTime.now());empMapper.insert(emp);//int i = 1/0;arithmetic exception属于运行时异常,可以被识别if (true){throw new Exception("出错啦~~~");}//2.保存员工的基本工作经历信息List<EmpExpr> exprList = emp.getExprList();if (!CollectionUtils.isEmpty(exprList)){//遍历集合,为empId赋值exprList.forEach(empExpr->{empExpr.setEmpId(emp.getId());});empExprMapper.insertBatch(exprList);}
}

事务的传播行为

事务嵌套

image-20251123195313376

  1. 保证有异常还能继续执行:finally
  2. 保证不被回滚:REQUIRES_NEW
@Transactional(propagation = Propagation.REQUIRES_NEW)//需要在一个新的事务中运行,避免运行之后被回滚
@Override
public void insertLog(EmpLog empLog) {empLogMapper.insert(empLog);
}
 @Transactional(rollbackFor = {Exception.class})//事务管理的注解 - 默认出现RuntimeException才会回滚@Overridepublic void save(Emp emp) throws Exception{try {//1.保存员工的基本信息emp.setCreateTime(LocalDateTime.now());emp.setUpdateTime(LocalDateTime.now());empMapper.insert(emp);int i = 1/0;//arithmetic exception属于运行时异常,可以被识别
//        if (true){
//            throw new Exception("出错啦~~~");
//        }//2.保存员工的基本工作经历信息List<EmpExpr> exprList = emp.getExprList();if (!CollectionUtils.isEmpty(exprList)){//遍历集合,为empId赋值exprList.forEach(empExpr->{empExpr.setEmpId(emp.getId());});empExprMapper.insertBatch(exprList);}} finally {//放到finally中无论事务成功与否都会提交日志// 但是提交后被回滚了,所以不能成功保存日志,所以需要单独开启新事务,去empLogService对应的impl中添加transactional注解,并声明//记录操作日志:调用另外一个serviceEmpLog empLog = new EmpLog(null, LocalDateTime.now(), "新增员工:" + emp);empLogService.insertLog(empLog);}}

image-20251123202929813

image-20251123202942376

image-20251123203438996

文件上传

image-20251123203515737

image-20251123203726246

image-20251123203924537

image-20251123205440113

debug运行之后可以查看file的存放地址

C:\Users\Lenovo\AppData\Local\Temp\tomcat.8080.89517753953083888\work\Tomcat\localhost\ROOT

image-20251123210733606

image-20251123210902962

如果没有保存文件,程序运行结束之后,或者debug跳过改断点将程序运行完之后,会将上面该临时文件夹中的数据清空删除!!!

文件上传

本地存储

springboot文件上传最大单个文件上传大小为1mb,超过会报错无法上传。

需要在application.yml中配置文件上传大小的配置,输入multipart就可以搜到

servlet:multipart:#最大单个文件大小max-file-size: 10MB#最大请求大小(包括所有文件和表单数据)max-request-size: 100MB
package com.itheima.controller;import com.itheima.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;
import java.util.UUID;@Slf4j
@RestController
public class UploadController {@PostMapping("/upload")public Result upload(String name, Integer age, MultipartFile file) throws IOException {log.info("接收的参数:{},{},{}",name,age,file);//获取原始文件名String originalFilename = file.getOriginalFilename();//新的文件名String extension = originalFilename.substring(originalFilename.lastIndexOf("."));String newFileName = UUID.randomUUID().toString() + extension;//保存文件//file.transferTo(new File("F:/images/"+originalFilename));file.transferTo(new File("F:/images/"+newFileName));return Result.success();}
}

只需要在controller里面配置

image-20251123214450955

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/974272.shtml

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

相关文章

完整教程:日本生活-东京新干线乘车经验-流程介绍

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

代码随想录算法训练营第三天:链表part01

代码随想录算法训练营第三天:链表part01**203.移除链表元素 ** leetcode链接:https://leetcode.cn/problems/remove-linked-list-elements/ 题目描述:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所…

2025-07-21-Mon-T-RocketMQ

1. 核心功能 1.1 MQ介绍 RocketMQ基本组件Topic: 消息归类的基本单元 Queue: 消息队列 Producer Consumer ConsumerGroup: NameServer:可以理解为注册中心,负责更新和发现Broker Broker集群:Broker 可以有一个或…

第一章 简介

关于简介这一章,作者简单阐明了CPU,GPU过去的发展,以及它们的差异。除此之外,作者还引入了CUDA,介绍了CUDA的代码类型,以及全书的结构。 此章值得注意的点如下: 1、GPU上的晶体管数量超过CPU上的。 2、两设备之间…

2025-07-13-Sun-T-AI-LangChain4j

1. 认识AI 1.1 神经元介绍 黑马LangChain4j入门到实战项目: 项目地址 软件架构 前端:静态页面后端框架:SpringbootLangchain4j + Ollama持久化:本地文件存储对话记录 (resources/memory) 用户预约信息存储在内存(…

P24_现有网络模型的使用及修改

P24_现有网络模型的使用及修改24.1 VGG16网络模型: (1)打开pytorch(0.9.0)—torchvision.models—VGG(2)参数点击查看代码 pretrained (bool) – If True, returns a model pre-trained on ImageNet progress (bo…

20232403 2025-2026-1 《网络与系统攻防技术》实验六实验报告

1.实验内容 主要内容:使用ARP扫描和nmap进行主机发现与端口扫描、Vsftpd后门漏洞获得root权限、Samba命令注入漏洞获取系统访问、Java RMI反序列化漏洞建立Meterpreter会话、PHP CGI参数注入漏洞。 掌握Metasploit命令…

第二讲类神经网络训练不起来

第二讲类神经网络训练不起来 一.优化失败的原因梯度为0有可能是local minima 和saddle point 因为计算优化的终止条件是梯度为0,但有可能梯度为0仅是局部最小值local minima或鞍点saddle point(多维,在某些维度是最…

【计算机网络】深入浅出DNS:网络世界的地址簿与导航系统 - 教程

【计算机网络】深入浅出DNS:网络世界的地址簿与导航系统 - 教程2025-11-23 21:39 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !imp…

2025-01-24-Fri-T-如何做一个开源项目

创建和维护一个开源项目是一个非常有意义的工作,它可以帮助你与全球开发者合作,同时建立个人或团队的影响力。以下是详细步骤,帮你从零开始创建一个成功的开源项目。 1. 确定项目目标 解决实际问题:选择一个对你或…

利用大语言模型分析技术支持诈骗Facebook群组的网络犯罪研究

本文介绍了一项利用大语言模型分析Facebook上技术支持诈骗群组的研究,涉及38万条帖子的分类分析,揭示了网络犯罪服务的运作模式和最新趋势。网络犯罪与刑罚:我们在APWG eCrimes会议上关于技术支持诈骗Facebook群组的…

一些唐话

学OI学的言论均为转载 不保证言论可读你干嘛直接放 *3500 啊?!正经比赛里不是这样的!你应该先放两个简单签到,然后提升我的心态。偶尔给我送送强点的大样例,然后在那个我上厕所的时候跟我有神秘互动。最后在某个我…

2025-05-29-Thu-T-设计模式

目录1. 设计模式相关内容介绍1.1 设计模式概述1.2 UML类图类的表示方式类之间的关系表示方法1.3 软件设计原则1.1 开闭原则1.2 里氏代换原则1.3 依赖倒转/依赖倒置原则1.4 接口隔离原则1.5 迪米特法则1.6 合成复用原则…

2025-05-27-Tue-T-JVM

目录1 JVM与Java体系结构1.1 JVM 结构简图1.2 Java代码执行流程1.3 JVM的架构模型1.4 JVM的生命周期一、内存结构1. 程序计数器2. 虚拟机栈2.1 定义2.2 栈内存溢出2.3 线程运行诊断3. 本地方法栈4. 堆4.1 定义4.2 堆内…

11-28

今日掌握了 HashMap 的常用方法(put ()、get ()、containsKey ()),理解了键的唯一性,学会了遍历 Map 集合的两种方式(keySet、entrySet)。 明日计划学习多线程编程,重点理解线程的概念、创建方式(继承 Thread …

20232421 2025-2026-1 《网络与系统攻防技术》实验六实验报告

1.实践内容前期渗透主机发现 端口扫描 选做:也可以扫系统版本、漏洞等。Vsftpd源码包后门漏洞(21端口) SambaMS-RPC Shell命令注入漏洞(139端口) Java RMI SERVER命令执行漏洞(1099端口) PHP CGI参数执行注入漏…

20232315 2025-2026-1 《网络与系统攻防技术》实验六实验报告

20232315 2025-2026-1 《网络与系统攻防技术》实验六实验报告20232315 2025-2026-1 《网络与系统攻防技术》实验六实验报告 目录一、实验基本信息二、实验内容及要求三、实验过程3.1 前期渗透3.2 漏洞利用四、问题及解…

[CISCN 2022 华东北]duck WP

[CISCN 2022 华东北]duck WP[CISCN 2022 华东北]duck 一、题目来源 NSSCTF-Pwn-[CISCN 2022 华东北]duck二、信息搜集 通过 file 命令查看文件类型:通过 checksec 命令查看文件开启的保护机制:题目把 libc 文件和链接…

20232320 2025-2026-1 《网络与系统攻防技术》实验六实验报告

1.实验内容 总结一下本周学习内容,不要复制粘贴 2.实验过程 (1)前期渗透 ①主机发现(可用Aux中的arp_sweep,search一下就可以use) ②端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等。 ③选做:也可以…

2025-01-14-Tue-T-实体关系图ERD

实体关系图(ERD)指南 什么是实体关系图(ERD)? 数据库是软件系统中不可或缺的一个组成部分,若能在数据库工程中好好利用 ER 图,便能让您生成高质量的数据库设计,用于数据库创建,管理和维护,也为人员间的交流提供…