springboot的编程式事务

配置类

package com.beetl.common.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;

import javax.sql.DataSource;


/**
 * @author:myb
 * @description: 事务管理器
 * @date:2023/11/4 10:02
 */
@Configuration
public class TransactionConfig
{
    @Bean
    public PlatformTransactionManager platformTransactionManager(DataSource dataSource)
    {
        DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();
        dataSourceTransactionManager.setDataSource(dataSource);
        return dataSourceTransactionManager;
    }
}

service

package com.beetl.pc.Service.impl;


import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.additional.update.impl.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.beetl.common.BeetlConstants;
import com.beetl.common.core.domain.entity.SysRole;
import com.beetl.common.core.domain.entity.SysUserRole;
import com.beetl.common.utils.*;
import com.beetl.common.utils.file.FilePathUtils;
import com.beetl.pc.Service.ISysUserService;
import com.beetl.common.core.domain.entity.SysUser;
import com.beetl.pc.entity.BeetlCompany;
import com.beetl.pc.entity.BeetlUser;
import com.beetl.pc.entity.body.LoginPasswordBody;
import com.beetl.pc.entity.body.TradePasswordBody;
import com.beetl.pc.mapper.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.support.TransactionTemplate;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

/**
 * @author:myb
 * @description:  蜜蜂社区系统用户业务层
 * @date:2023/10/13 11:40
 */
@Slf4j
@Service
@RequiredArgsConstructor
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService
{
    private final SysUserMapper  userMapper;

    private  final TransactionTemplate transactionTemplate;
    /**
     * 新增用户并且返回用户Id
     * @param user  用户实体对象
     * @return  用户Id
     */
    @Override
    public Long insertSysUser(SysUser user)
    {
        transactionTemplate.execute(status -> {
            try
            {
               /**
               	* 这里些业务逻辑
               	**/
            }
            catch (Exception e)
            {
                status.setRollbackOnly();
            }
           return Boolean.TRUE;
        });

       return user.getUserId();
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值