mapper的xml配置文件中,一个delete id 里面如何写两条sql语句
时间: 2024-10-17 17:11:47 浏览: 22
在MyBatis的mapper XML配置文件中,如果你想在一个`<delete>`标签下执行多条 SQL 语句,可以使用 `<foreach>` 或者 `<if>` 标签配合。这里分别给出两种方法:
**方法一:使用 `<foreach>`**
```xml
<delete id="deleteMultiple">
<foreach item="item" index="index" collection="list" open="BEGIN;" separator="UNION ALL" close="END;">
DELETE FROM table1 WHERE condition1 = #{item.column1}
DELETE FROM table2 WHERE condition2 = #{item.column2}
</foreach>
</delete>
```
在这里,`list` 是一个 List 对象,你需要先在 Java 代码中准备好数据。`open` 和 `close` 分别定义了开始和结束的标记。
**方法二:使用 `<if>` 根据条件执行不同的删除操作**
```xml
<delete id="deleteMultipleConditions">
<if test="condition1">DELETE FROM table1 WHERE condition1;</if>
<if test="condition2">DELETE FROM table2 WHERE condition2;</if>
</delete>
```
在这个例子中,`condition1` 和 `condition2` 是 Java 中的布尔表达式,只有当它们为真时才会执行对应的删除操作。
请注意,在实际操作前,确保对SQL注入风险有所防范,使用预编译语句或参数化查询。
阅读全文