判断实例类某些参数不能为空 @PostMapping("/save") @Transactional(rollbackFor = Exception.class) //声明式事务管理 public ResultRespone saveYhda(@RequestBody DaCustomer daCustomer,@RequestBody DaMeter daMeter ) { //获取最大用户编号 Map<String ,Object> map= daCustomerMapper.selectMaxCustomerNo(); int yhbh=Integer.parseInt(map.get("CUSTOMER_NO").toString())+1; daCustomer.setCustomerNo(String.valueOf(yhbh)); daCustomer.setCustomerNoOld(String.valueOf(yhbh)); ResultRespone<Object> rest = new ResultRespone<>(); if(StringUtils.isEmpty(daCustomer.getCustomerName())) { rest.setCode(-1); rest.setMessage("用户姓名不能为空"); } if(StringUtils.isEmpty(daCustomer.getCustomerAddress())) { rest.setCode(-1); rest.setMessage("用户地址不能为空"); }
时间: 2024-04-05 07:29:43 浏览: 21
这段代码中在保存用户信息和表计信息时,使用了 @RequestBody 注解来接收请求体中的数据。在保存用户信息前,使用了 daCustomer.getCustomerName() 和 daCustomer.getCustomerAddress() 进行了非空判断,只有当这两个参数都不为空时,才会进行保存操作。这是为了确保用户姓名和地址这两个必要参数不为空,避免保存出错。同时在代码中还使用了声明式事务管理,保证了数据的一致性和完整性。
相关问题
@Transactional(rollbackFor = Exception.class)与@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)的区别
@Transactional注解用于声明事务,在Spring中常用来保证方法的执行在一个事务内部,以确保数据的一致性和完整性。其中,rollbackFor参数指定哪些异常需要回滚事务,Propagation.REQUIRED指定了方法的事务传播行为。
区别如下:
- @Transactional(rollbackFor = Exception.class):这个注解只指定了回滚的异常类型,而没有指定传播行为,默认传播行为是Propagation.REQUIRED。
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class):这个注解指定了方法的事务传播行为和回滚的异常类型。
简单来说,前者只指定了回滚异常类型,而后者不仅指定了回滚异常类型,还明确指定了事务的传播行为。
@Transactional(rollbackFor = Exception.class)加在类上
在类上使用`@Transactional(rollbackFor = Exception.class)`注解的作用是指定在事务中发生异常时需要回滚的异常类型。如果不加`rollbackFor = Exception.class`,则默认情况下只有在发生未检查异常(即继承自`RuntimeException`的异常)时才会回滚事务,而对于检查异常(即继承自`Exception`但不继承自`RuntimeException`的异常),默认情况下是不会回滚事务的。
通过在类上加上`@Transactional(rollbackFor = Exception.class)`注解,可以确保无论是未检查异常还是检查异常,在事务中发生时都会触发回滚操作,保证数据的一致性和完整性。
范例:
```java
@Transactional(rollbackFor = Exception.class)
public class TransactionalClass {
// 类的方法
}
```