首页 > 编程语言 >事务 - 编程式事务

事务 - 编程式事务

时间:2024-10-20 21:13:50浏览次数:1  
标签:事务 编程 springframework DefaultTransactionDefinition org import def

package com.example.demo.service;

import com.example.demo.mapper.UserMapper;
import com.example.demo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    @Autowired
    private PlatformTransactionManager transactionManager;

    public void createUser(String name) {
        // 创建事务定义
        DefaultTransactionDefinition def = new DefaultTransactionDefinition();

        // 设置传播行为
        def.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRED);

        // 设置隔离级别(例如:READ_COMMITTED)
        def.setIsolationLevel(DefaultTransactionDefinition.ISOLATION_READ_COMMITTED);

        // 设置超时时间(例如:10秒)
        def.setTimeout(10);

        // 开始事务
        TransactionStatus status = transactionManager.getTransaction(def);
        try {
            // 执行数据库操作
            User user = new User();
            user.setName(name);
            userMapper.insertUser(user);
            
            // 提交事务
            transactionManager.commit(status);
        } catch (Exception e) {
            // 回滚事务
            transactionManager.rollback(status);
            throw e; // 重新抛出异常
        }
    }
}

标签:事务,编程,springframework,DefaultTransactionDefinition,org,import,def
From: https://www.cnblogs.com/cyrushuang/p/18487604

相关文章

  • Spring Boot 整合 RocketMQ 之事务消息
    前言:上一篇我们分享了RocketMQ完成顺序消息发送的案例,本篇我们来分享一下RocketMQ事务消息的使用。RocketMQ系列文章传送门RocketMQ的介绍及核心概念讲解SpringBoot整合RocketMQ之普通消息SpringBoot整合RocketMQ之定时/延时消息SpringBoot整合Rocke......
  • 事务
    事务的基本概念事务是由一系列操作组成的逻辑单元,这些操作要么全部成功,要么全部失败,一个事务具有以下特性(ACID):原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成。一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态。隔离性(Isolat......
  • C系统编程通信方式——共享内存
        共享内存,标准IPC之一,也是进程间通信最快的一种方式。1.概念    所有的标准IPC都有一个内部ID作为唯一标识。内部ID的获取通过外部key,key的类型是key_t。key的获取方法有在头文件中定义所有key和通过ftok函数获取一个key。key_tftok(constchar*pathna......
  • 基于nodejs+vue基于web的青少年编程课程评价系统[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于青少年编程课程评价的研究,现有研究主要以传统课程评价为主,专门针对青少年编程课程这一新兴教育领域的评价研究较少。在国内外,传统课程评价体系已经......
  • 基于node.js+vue基于Android的“编程猿”学习App设计与实现(开题+程序+论文)计算机毕业
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于基于Android的学习类App的研究,现有研究主要以通用型学习App为主,如语言学习类、考证辅导类等。专门针对编程学习领域的Android应用研究较少。因此本......
  • 三,Java编程基础:深入理解数据类型与类型转换
    数据类型与类型转换在Java编程中,数据类型是定义变量存储数据的格式。Java是一种强类型语言,这意味着每个变量和表达式都有一个明确的数据类型。本文将深入探讨Java中的基本数据类型、引用数据类型以及类型转换,包括详细的示例和代码。基本数据类型Java的基本数据类型分为整数类型......
  • USB协议详解第17讲(USB事务总结)
    1.USB传输回顾前面讲了四种传输的类型的事务组成,包括控制传输,同步传输,批量传输,中断传输。2.USB事务总结本节我们来对事务(transaction)相关内容做以总结,从前面学习中我们可以看到其实事务有三种类型,Setup事务、DataIN事务、DataOUT事务。Setup事务:主要向设备发送控制命令;Dat......
  • USB协议详解第15讲(USB传输-批量传输及事务组成)
    1.前言前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了同步传输细节及事务组成,今天我们主要讲解批量传输及事务组成,批量传输也叫大容量传输。批量传输和同步传输类似,是使用批量事务(BulkTrans......
  • USB协议详解第16讲(USB传输-中断传输及事务组成)
    1.前言中断传输用于那些频率不高,但是对周期有一定要求的数据传输。具有保证的带宽,并能在下一个周期对先前错误的传输进行重传。中断端点在端点描述符中要报告主机对此端点的查询时间,主机会保证在小于这个时间间隔的范围内安排一次传输,比如HOST主机1ms内向鼠标设备请求一次数据。......
  • C++编程-贪心算法2
    目录先言例题三:删数问题(NOI1994)题目描述算法分析标准程序-字符串String例题四:拦截导弹问题题目描述算法分析主要框架(标准程序)例题五:活动选择题目描述算法分析标准程序先言今天讲贪心算法的第3~5例题例题三:删数问题(NOI1994)题目描述【题目描述】输......