mybatis实现联合主键批量删除
时间: 2023-11-12 08:07:54 浏览: 409
可以通过使用MyBatis的foreach标签来实现联合主键批量删除。具体步骤如下:
1. 在mapper.xml文件中编写删除语句,使用foreach标签将联合主键以“AND”连接起来,如下所示:
```xml
<delete id="deleteByPrimaryKeyList" parameterType="java.util.List">
DELETE FROM table_name
WHERE (id1, id2) IN
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item.id1}, #{item.id2}
</foreach>
</delete>
```
2. 在mapper接口中定义删除方法,传入一个List类型参数,方法名与id必须与mapper.xml中定义的一致,如下所示:
```java
void deleteByPrimaryKeyList(List<MyKey> keyList);
```
3. 在Java代码中调用该方法并传入需要删除的联合主键列表,如下所示:
```java
List<MyKey> keyList = new ArrayList<>();
MyKey key1 = new MyKey(id1_1, id2_1);
MyKey key2 = new MyKey(id1_2, id2_2);
keyList.add(key1);
keyList.add(key2);
mapper.deleteByPrimaryKeyList(keyList);
```
注意,需要定义一个包含联合主键字段的Java类,如MyKey类,用于封装联合主键值。
阅读全文
相关推荐


















