首页 > 其他分享 >复盘工作2025-01

复盘工作2025-01

时间:2025-01-12 22:22:34浏览次数:1  
标签:语句 insert 事务 01 视图 2025 线程 方法 复盘

复盘工作2025-01-12

1.通过在A方法中创建新线程,新线程里调用(已定义为新开启事务的)B方法来实现B方法代码里能读到A方法里insert的数据:

/**
             * 1.问题:
             * 业务方法B里执行insert语句插入数据库设备表后,调用方法A,方法A里查视图(视图会查设备表)获取数据后生成二维码。
             * 但实际测试A方法里查视图无法查到新插入的设备,进而无法执行后续生成二维码逻辑。
             * 2.解决方案:
             * 在方法B中执行insert语句插入数据库设备表后,启动一个新线程,线程等待3秒后,调用方法A,同时将A方法定义为开启新的事务(
             * 这点通过给A方法加上@Transactional(propagation = Propagation.REQUIRES_NEW)来实现)。
             * 3.分析:
             * 3.1原方案失败原因:
             * (1)在默认情况下,spring中事务管理器(如DataSourceTransactionManager)使用数据库的事务隔离级别。
             * 大多数数据库默认使用“读已提交(read committed)隔离级别”。
             * (2)当方法A执行insert语句时,这条语句会开启一个事务,并且在这个事务提交之前,插入的数据对其他事务时不可见的。
             * 原来方法B里直接调方法A,由于B和A在同一个事务中运行(如果没有特别指定事务传播行为),
             * 执行方法A时,方法B的insert语句并没有提交,所以造成A方法里视图查设备表不到设备。
             * (3)默认情况下,如果方法在同一个事务上下文中被调用(即没有指定@Transactional的propagation属性),它们将共享同一个事务。
             * 3.2解决方案分析:
             * 将方法A加上注解@Transactional(propagation = Propagation.REQUIRES_NEW)注解后,该方法会在全新的事务中运行,
             * 与方法B所在事务是互不干扰的。同时在B方法启动新线程后延时3秒,有助于确保这时B方法的事务已提交
             * (即insert语句已提交)。从而使方法A里视图能查出刚入库的设备。
             */

 

标签:语句,insert,事务,01,视图,2025,线程,方法,复盘
From: https://www.cnblogs.com/pingfanliliang/p/18667471

相关文章

  • 2025 年 1 月 TIOBE 指数,一月头条:Python 是 TIOBE 2024 年度编程语言!
    2025年1月TIOBE指数一月头条:Python是TIOBE2024年度编程语言!编程语言Python赢得了“TIOBE2024年度编程语言”称号。该奖项授予一年内评级增幅最高的编程语言。Python在2024年增长了9.3%。这远远领先于其竞争对手:Java+2.3%、JavaScript+1.4%和Go+1.2%。......
  • 2025毕设springboot 电影院网上售票系统论文+源码
    系统程序文件列表开题报告内容研究背景随着互联网技术的迅猛发展和人们生活水平的提高,电影院作为重要的休闲娱乐场所,其经营方式和服务模式也在不断变化。传统的电影院售票方式主要依赖于线下的售票窗口和自动售票机,但随着在线购票习惯的普及,网上售票系统已成为电影院不可或......
  • 2025毕设springboot 电影网站系统论文+源码
    系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,数字媒体已成为人们日常生活中不可或缺的一部分,其中电影作为一种重要的文化娱乐形式,深受全球观众的喜爱。近年来,随着在线观影平台的兴起,人们越来越倾向于通过网络平台浏览电影信息、购票以及参与影片讨论。电......
  • java基于WEB的高校实训管理系统论文+源码 2025毕设
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着信息技术的飞速发展,高校教育也在不断地变革与创新。在高校的教学体系中,实训教学作为培养学生实践能力和综合素质的关键环节,其管理的高效性和......
  • java教师信息管理系统论文+源码 2025毕设
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在现代教育环境下,学校规模不断扩大,教师数量日益增多,教师管理工作变得愈发复杂。传统的人工管理方式已经难以满足需求,效率低下且容易出错。随着信......
  • java汉影公司员工办公管理系统论文+源码 2025毕设
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着企业规模的不断扩大和业务的日益复杂,传统的办公管理方式在汉影公司已难以满足高效运营的需求。在当今数字化时代,信息的快速传递、资源的有效......
  • java企业采购网络管理系统论文+源码 2025毕设
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着互联网技术的飞速发展,企业运营的各个环节都在经历数字化转型。在采购管理方面,传统的采购模式面临诸多挑战,如信息不透明、流程繁琐、效率低下......
  • java俱乐部会员管理系统的设计与实现论文+源码 2025毕设
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着社会的发展,各类俱乐部不断涌现,会员数量也日益增多。在传统管理模式下,俱乐部对会员的管理多依赖人工操作,如人工记录会员信息、缴费和消费情况......
  • java学生信息管理系统论文+源码 2025毕设
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在当今数字化时代,教育领域面临着大量信息管理的挑战。随着学校规模的不断扩大,学生数量增多,传统的人工管理学生信息的方式已经难以满足需求。学生......
  • java电信套餐管理系统论文+源码 2025毕设
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着电信行业的迅速发展,电信套餐成为运营商吸引客户、参与市场竞争的重要手段。当前,电信套餐种类繁多且复杂,从早期较为单一的通话、短信套餐,发展......