mybatis 间接多对多
时间: 2023-11-09 16:59:06 浏览: 34
对于 MyBatis 中的间接多对多关系,可以通过使用中间表实现。下面是一种常见的实现方式:
1. 首先,定义三个表:A、B 和 AB 中间表。
- 表 A 包含自身的字段和主键。
- 表 B 包含自身的字段和主键。
- 表 AB 是一个中间表,包含 A 表和 B 表的主键作为外键。
2. 在 MyBatis 的映射文件中,定义 SQL 查询语句来获取 A 对象关联的 B 对象列表:
```xml
<select id="getBListByAId" parameterType="int" resultType="B">
SELECT B.*
FROM A
JOIN AB ON A.id = AB.a_id
JOIN B ON AB.b_id = B.id
WHERE A.id = #{aId}
</select>
```
这样就能通过 A 的主键查询到关联的 B 对象列表。
3. 同样,在映射文件中,还要定义 SQL 插入语句来插入 A 对象和 B 对象之间的关联关系:
```xml
<insert id="insertAB" parameterType="map">
INSERT INTO AB(a_id, b_id) VALUES (#{aId}, #{bId})
</insert>
```
在插入 A 对象和 B 对象之后,通过调用这个插入语句,将它们的主键插入到 AB 中间表中,建立起关联关系。