温馨提示×

MyBatis 删除时如何使用条件

小樊
107
2024-07-12 03:07:28
栏目: 编程语言

在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语句,实现根据条件删除数据的功能。

0