在springboot+mybatis+mysql重,有产品表,数量表,现在根据产品表id,使用sum统计产品表的金额乘数量表的数量,拿到统计出来的值,最后返回给vue的前台
时间: 2024-01-06 11:05:32 浏览: 124
springboot+mybatisplus+mysql 多数据源
好的,针对你的问题,我可以给出以下思路:
1.首先,你需要在MyBatis中编写一个SQL查询语句,用于根据产品表的ID去查询产品表的金额,再根据产品表的ID去查询数量表的数量,并使用SUM函数对金额进行求和。最后,将金额和数量相乘得到结果。这个SQL可以使用联合查询和SUM函数来实现。
2.在Spring Boot中编写一个Service层的方法,用于调用MyBatis中的SQL查询语句,并将查询结果封装到一个Java对象中。
3.最后,你可以在Controller层中编写一个接口,用于接收Vue前端的请求,调用Service层中的方法得到查询结果,并将结果返回给Vue前端。
下面是一个示例代码,帮你更好地理解以上思路:
1. MyBatis中的SQL查询语句:
```xml
<!-- 查询产品表和数量表的联合查询 -->
<select id="getProductInfo" resultType="java.lang.Double">
SELECT SUM(p.price * n.quantity)
FROM product p
LEFT JOIN number n ON p.id = n.product_id
WHERE p.id = #{productId}
</select>
```
2. Service层中的方法:
```java
@Service
public class ProductService {
@Autowired
private ProductMapper productMapper;
public Double getProductTotal(Long productId) {
return productMapper.getProductTotal(productId);
}
}
```
3. Controller层中的接口:
```java
@RestController
@RequestMapping("/product")
public class ProductController {
@Autowired
private ProductService productService;
@GetMapping("/total/{productId}")
public Double getProductTotal(@PathVariable Long productId) {
return productService.getProductTotal(productId);
}
}
```
这样,你就可以根据产品表的ID来查询产品表的金额和数量表的数量,并使用SUM函数对金额进行求和,最后将金额和数量相乘得到结果,并将结果返回给Vue前端了。
阅读全文