事务管理
开启事务
手动提交事务
如果方法上没有@Transactional注解,则表示不启用事务。
手动管理事务。
package com.yxl.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
import com.yxl.dao.UserDao;
import com.yxl.entity.User;
import java.util.List;
@Service // 声明成一个spring bean
public class UserService {
@Autowired
DataSourceTransactionManager dataSourceTransactionManager;
@Autowired
TransactionDefinition transactionDefinition;
@Autowired // 连接到UserDao Bean
private UserDao userDao;
/**
* 手动提交事务
*
* @return
*/
public String update1() {
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
try {
User user = new User();
user.setName("android");
user.setAge(200);
userDao.update(user);
int i = 10 / 0;
User user1 = new User();
user1.setName("ios");
user1.setAge(200);
userDao.update(user1);
dataSourceTransactionManager.commit(transactionStatus); // 手动提交
} catch (Exception e) {
System.out.println("事务回滚 ");
e.printStackTrace();
dataSourceTransactionManager.rollback(transactionStatus); // 事务回滚
}
return "update OK!";
}
}
来源:oschina
链接:https://my.oschina.net/u/4157150/blog/3274747