ssm多表联查和批量删除
时间: 2023-07-25 19:09:29 浏览: 116
SSM框架中多表联查可以通过在MyBatis中编写SQL语句实现。例如,如果要查询订单表和商品表的信息,可以通过以下步骤实现:
1. 在MyBatis中编写SQL语句,使用JOIN关键字将订单表和商品表连接起来,然后通过SELECT语句查询需要的信息。
示例代码:
```
SELECT o.order_id, o.user_id, o.order_time, p.product_name, p.price
FROM orders o
JOIN products p ON o.product_id = p.product_id
```
2. 在Mapper文件中定义对应的方法,传入参数并调用SQL语句进行查询。
示例代码:
```
public List<OrderProduct> getOrderProductList() {
return sqlSession.selectList("com.example.mapper.OrderMapper.getOrderProductList");
}
```
3. 在Service和Controller中调用Mapper中定义的方法,将查询结果返回给前端页面。
示例代码:
```
@RequestMapping("/orderProductList")
public ModelAndView getOrderProductList() {
List<OrderProduct> orderProductList = orderService.getOrderProductList();
ModelAndView modelAndView = new ModelAndView("orderProductList");
modelAndView.addObject("orderProductList", orderProductList);
return modelAndView;
}
```
批量删除也可以通过MyBatis实现。以下是实现步骤:
1. 在Mapper文件中定义对应的方法,传入需要删除的主键列表。
示例代码:
```
public int deleteByIdList(List<Integer> idList) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("idList", idList);
return sqlSession.delete("com.example.mapper.ProductMapper.deleteByIdList", paramMap);
}
```
2. 在Service中调用Mapper中定义的方法,将需要删除的主键列表传入。
示例代码:
```
public int deleteProductByIdList(List<Integer> idList) {
return productMapper.deleteByIdList(idList);
}
```
3. 在Controller中调用Service中定义的方法,将结果返回给前端页面。
示例代码:
```
@RequestMapping("/deleteProductByIdList")
public String deleteProductByIdList(@RequestParam("idList") List<Integer> idList) {
productServcie.deleteProductByIdList(idList);
return "redirect:/productList";
}
```
阅读全文