瑞吉外卖day04用mybatis怎么写新增菜品(多表联查)
时间: 2023-11-14 12:18:02 浏览: 72
Mybatis实现多表联合查询和批量插入
首先,我们需要定义菜品实体类和菜品分类实体类,并在这两个实体类中定义对应的属性和getter/setter方法。
接着,我们需要在MyBatis的Mapper中定义新增菜品的SQL语句,涉及到多表联查的话,我们可以使用左连接或内连接的方式来实现。
下面是一个可能的实现过程:
1. 创建菜品实体类和菜品分类实体类
```java
public class Dish {
private int id;
private String name;
private double price;
private String description;
private int categoryId;
private Category category;
// getter/setter方法
}
public class Category {
private int id;
private String name;
// getter/setter方法
}
```
2. 在MyBatis的Mapper中定义新增菜品的SQL语句
```xml
<!-- 新增菜品 -->
<insert id="insertDish" parameterType="Dish">
insert into dish(name, price, description, category_id)
values(#{name}, #{price}, #{description}, #{categoryId})
</insert>
<!-- 查询指定菜品分类 -->
<select id="selectCategoryById" parameterType="int" resultType="Category">
select * from category where id = #{id}
</select>
```
3. 在Java代码中调用Mapper接口来实现新增菜品
```java
public void addDish(Dish dish) {
// 执行新增菜品的SQL语句
dishMapper.insertDish(dish);
// 查询新增菜品对应的菜品分类
Category category = dishMapper.selectCategoryById(dish.getCategoryId());
// 将菜品分类设置到菜品实体类中
dish.setCategory(category);
}
```
需要注意的是,在执行新增菜品的SQL语句之后,我们需要查询对应的菜品分类并将其设置到菜品实体类中,这样才能获取到完整的菜品信息。
阅读全文