package com.trans.service.impl;
import com.trans.annotation.MyTransaction;
import com.trans.entity.User;
import com.trans.resposity.UserRepository;
import com.trans.service.UserService;
import java.io.IOException;
import java.sql.SQLException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition;
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserRepository userRepository;
@Autowired
PlatformTransactionManager transactionManager;
//编程式事务
@Override
public User updateUser(User user){
//设置事务名称,事务隔离级别,传播性
DefaultTransactionDefinition definition = new DefaultTransactionDefinition();
definition.setName("编程式事务");
definition.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
definition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
//获取事务并开启事务
TransactionStatus status = transactionManager.getTransaction(definition);
User res=null;
try{
res=userRepository.save(user);
transactionManager.commit(status);
//提交事务
}catch (Exception ex){
ex.printStackTrace();
//出现异常,回滚事务
transactionManager.rollback(status);
}
return res;
}
@MyTransaction
@Override
public User insert(User user) {
User res=null;
res=userRepository.save(user);
throw new RuntimeException("11");
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public User addUser2(User user){
User res=null;
try {
userRepository.update(user.getUsername(),user.getId());
}catch (Exception ex){
ex.printStackTrace();
throw ex;
}
return res;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
spring 自定义事务管理器,编程式事务,声明式事务@Transactional使用
共68个文件
zip:16个
class:12个
java:11个
需积分: 5 0 下载量 193 浏览量
2022-07-13
13:59:49
上传
评论
收藏 99KB ZIP 举报
温馨提示
本代码使用H2内存数据库演示spring事务使用,包括编程式事务,声明式事务@Transactional使用,自定义事务事务注解实现自定义事务管理器
资源详情
资源评论
资源推荐
收起资源包目录
transactional_learn.zip (68个子文件)
transactional_learn
pom.xml 4KB
target
test-classes
com
trans
test
TranTest.class 2KB
maven-status
maven-compiler-plugin
compile
default-compile
inputFiles.lst 673B
createdFiles.lst 260B
testCompile
default-testCompile
inputFiles.lst 0B
generated-test-sources
test-annotations
classes
log
soi-%d{yyyy-MM-dd}.%i.error.log 0B
soi-trans.error.log 0B
2022-06
soi-2022-06-28.6.info.log.zip 2KB
soi-2022-06-28.0.info.log.zip 3KB
soi-2022-06-28.2.info.log.zip 2KB
soi-2022-06-28.4.info.log.zip 2KB
soi-2022-06-28.7.info.log.zip 3KB
soi-2022-06-28.3.info.log.zip 2KB
soi-2022-06-28.5.info.log.zip 2KB
soi-2022-06-28.1.info.log.zip 2KB
soi-trans.info.log 12KB
%d{yyyy-MM,aux}
soi-%d{yyyy-MM-dd}.info.log 19KB
application.yml 3KB
db
schema.sql 0B
data.sql 0B
com
trans
aop
ExtTransactionalAop.class 2KB
resposity
UserRepository.class 633B
annotation
MyTransaction.class 491B
Starter.class 665B
swaggerconfig
SwaggerConfig.class 2KB
controller
UserController$ResponseCommon.class 956B
UserController.class 1KB
service
UserService.class 346B
impl
UserServiceImpl.class 3KB
entity
User.class 1KB
utils
TransactionUtils.class 1KB
logback-spring1.xml 3KB
maven-archiver
pom.properties 107B
generated-sources
annotations
transactional_learn-1.0-SNAPSHOT.jar 8KB
src
test
java
com
trans
test
TranTest.java 960B
org
example
main
resources
log
soi-%d{yyyy-MM-dd}.%i.error.log 0B
soi-trans.error.log 0B
2022-06
soi-2022-06-28.6.info.log.zip 2KB
soi-2022-06-28.0.info.log.zip 3KB
soi-2022-06-28.2.info.log.zip 2KB
soi-2022-06-28.4.info.log.zip 2KB
soi-2022-06-28.7.info.log.zip 3KB
soi-2022-06-28.3.info.log.zip 2KB
soi-2022-06-28.5.info.log.zip 2KB
soi-2022-06-28.1.info.log.zip 2KB
soi-trans.info.log 12KB
%d{yyyy-MM,aux}
soi-%d{yyyy-MM-dd}.info.log 19KB
application.yml 3KB
db
schema.sql 0B
data.sql 0B
logback-spring1.xml 3KB
java
com
trans
aop
ExtTransactionalAop.java 2KB
resposity
UserRepository.java 470B
annotation
MyTransaction.java 497B
swaggerconfig
SwaggerConfig.java 1KB
Starter.java 335B
controller
UserController.java 1KB
service
UserService.java 275B
impl
UserServiceImpl.java 2KB
entity
User.java 1KB
utils
TransactionUtils.java 928B
org
.idea
misc.xml 541B
jarRepositories.xml 878B
encodings.xml 267B
compiler.xml 552B
workspace.xml 6KB
.gitignore 50B
inspectionProfiles
Project_Default.xml 281B
共 68 条
- 1
雁过留声--
- 粉丝: 24
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0