在MyBatis中,可以使用<where>
和<if>
标签来实现删除操作时的条件筛选。
例如,假设我们要删除名为"张三"且年龄大于18的用户信息,可以使用如下的SQL语句和MyBatis的方法来实现:
SQL语句:
DELETE FROM user_table
WHERE name = '张三'
AND age > 18;
MyBatis XML映射文件:
<delete id="deleteUser" parameterType="map">
DELETE FROM user_table
<where>
<if test="name != null">
AND name = #{name}
</if>
<if test="age != null">
AND age > #{age}
</if>
</where>
</delete>
在Java代码中调用该MyBatis方法时,需要传入一个Map对象作为参数,该Map对象包含需要筛选的条件,比如:
Map<String, Object> params = new HashMap<>();
params.put("name", "张三");
params.put("age", 18);
int rowsAffected = sqlSession.delete("deleteUser", params);
这样就可以根据传入的条件动态生成对应的SQL语句,实现根据条件删除数据的功能。