mybait-plus 多表同时插入
时间: 2023-07-18 15:26:23 浏览: 114
MyBatis-Plus 提供了多种方式实现多表同时插入,以下是其中一种方式:
1. 创建一个包含所有需要插入数据的实体类。
2. 创建一个 Mapper 接口,使用 @Insert 注解插入数据。在注解中使用 SQL 语句的 INSERT INTO 语法,指定需要插入数据的表名和字段名,使用 #{属性名} 获取实体类中对应的属性值。
例如:
```
@Mapper
public interface UserMapper extends BaseMapper<User> {
@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age});" +
"INSERT INTO account(user_id, balance) VALUES(LAST_INSERT_ID(), #{balance});")
int insertUserAndAccount(User user, Account account);
}
```
在 SQL 语句中,使用 LAST_INSERT_ID() 函数获取上一次插入的自增主键值,作为 account 表中的 user_id 字段的值。
3. 在 Service 层中调用 Mapper 接口中的方法,传入需要插入的实体类对象即可。
例如:
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public void insertUserAndAccount(User user, Account account) {
userMapper.insertUserAndAccount(user, account);
}
}
```
这样就可以同时向 user 表和 account 表插入数据了。需要注意的是,如果插入操作失败,会抛出异常,需要在 Service 层进行异常处理。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)