在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語句,實現根據條件刪除數據的功能。