mybatis-plus 求和controller
时间: 2023-09-10 21:10:50 浏览: 57
下面是一个使用 MyBatis-Plus 进行求和操作的 Controller 示例:
```java
@RestController
@RequestMapping("/orders")
public class OrderController {
@Autowired
private OrderMapper orderMapper;
@GetMapping("/totalAmount")
public ResponseEntity<Double> getTotalAmount() {
QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
queryWrapper.select("SUM(amount) as amount");
Double totalAmount = orderMapper.selectObjs(queryWrapper).stream()
.map(obj -> (Double) obj)
.findFirst()
.orElse(0.0);
return ResponseEntity.ok(totalAmount);
}
}
```
在上面的代码中,我们首先注入了一个 `OrderMapper` 对象,它是一个 MyBatis 的 Mapper 接口,用于操作数据库。然后我们定义了一个 `getTotalAmount` 方法,它对应了一个 GET 请求,用于获取订单总金额。
在这个方法中,我们使用了一个 `QueryWrapper` 对象来构建查询条件,然后调用 `selectObjs` 方法执行查询,返回一个包含查询结果的列表。由于我们只需要获取总金额,因此在查询条件中使用了 `SUM` 函数来进行求和操作。最后,我们使用 Java 8 中的 Stream API 对查询结果进行处理,提取出总金额并返回给客户端。
注意,上面的代码中使用了 `ResponseEntity` 对象来封装返回结果,它可以指定 HTTP 状态码、响应头等信息。如果查询出现异常,可以使用 `ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build()` 方法返回 500 错误。