mybatis 根据两个不同字段批量删除
时间: 2024-11-15 12:27:05 浏览: 1
MyBatis是一个强大的持久层框架,它允许你在SQL层面进行映射和操作数据库。当你需要根据两个不同的字段进行批量删除记录时,可以使用动态SQL语句结合foreach标签来实现。以下是一个示例:
假设你有一个User实体类,有两个字段id和email,并且你想根据这两个字段组合的值来删除记录,你可以这样做:
```xml
<select id="deleteUsersByField" parameterType="map" resultType="int">
delete from user
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="email != null">
and email = #{email}
</if>
</where>
</select>
<delete id="batchDeleteUsers" parameterType="list">
delete from user
<foreach item="item" index="index" collection="usersToDelete" open="(" separator="," close=")">
<if test="index eq 0">
(id = #{item.id} and email = #{item.email})
</if>
<if test="index gt 0">
or (id = #{item.id} and email = #{item.email})
</if>
</foreach>
</delete>
```
在这个例子中,`deleteUsersByField`方法用于生成单条记录的查询条件,而`batchDeleteUsers`方法则通过foreach遍历一个包含所有要删除用户信息的列表,构建出每个用户对应的SQL WHERE子句。
阅读全文