spring boot中的事务处理实例
时间: 2023-07-31 21:13:39 浏览: 116
在Spring Boot中,可以使用@Transactional注解来标记需要进行事务处理的方法。以下是一个简单的示例:
首先,在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
```
然后,在application.properties文件中配置数据库连接信息:
```
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
```
接下来,创建一个UserService类,在其中定义一个添加用户的方法:
```
@Service
public class UserService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Transactional
public void addUser(User user) {
jdbcTemplate.update("insert into user(name, age) values (?, ?)", user.getName(), user.getAge());
// 抛出异常,触发事务回滚
// throw new RuntimeException("添加用户失败");
}
}
```
在方法上添加@Transactional注解,表示该方法需要进行事务处理。如果在方法执行过程中发生异常,事务会被回滚,数据不会被插入到数据库中。
最后,创建一个Controller类,在其中调用UserService的addUser方法:
```
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/user")
public String addUser(User user) {
userService.addUser(user);
return "success";
}
}
```
当调用addUser方法时,如果出现异常,事务会被回滚,数据不会被插入到数据库中。
阅读全文