mybatis多表关联插入
时间: 2023-05-31 18:03:30 浏览: 119
在 MyBatis 中,多表关联插入可以通过以下方式实现:
1. 在 mapper.xml 文件中定义多表插入语句,使用 INSERT INTO 语句插入需要的数据。
例如,假设有两个表:user 和 address,其中 user 表有一个外键 address_id,关联到 address 表的主键 id,那么可以使用以下语句插入数据:
```
<insert id="insertUser" parameterType="User">
INSERT INTO user (name, age, address_id)
VALUES (#{name}, #{age}, #{address.id});
</insert>
<insert id="insertAddress" parameterType="Address">
INSERT INTO address (province, city, district)
VALUES (#{province}, #{city}, #{district});
</insert>
```
2. 在 Java 代码中,可以先插入 address 表的数据,获取生成的主键 id,然后再插入 user 表的数据,将 address_id 设置为刚刚获取的主键 id。
例如,可以使用以下代码实现多表关联插入:
```
public void createUser(User user) {
// 插入 address 表的数据
addressMapper.insertAddress(user.getAddress());
// 获取生成的主键 id
Long addressId = user.getAddress().getId();
// 将 address_id 设置为主键 id
user.setAddressId(addressId);
// 插入 user 表的数据
userMapper.insertUser(user);
}
```
这样,就可以实现多表关联插入了。需要注意的是,在插入数据的过程中,需要保证表之间的关联关系正确,否则会出现插入异常。
阅读全文