mybatis delete返回值
时间: 2025-01-21 18:23:00 浏览: 61
### MyBatis 中 Delete 操作的返回值含义及用法
#### 删除操作的结果反馈
在 MyBatis 下执行 `delete` 操作时,可以通过返回值来判断删除语句是否成功以及具体影响了多少行数据。对于 SQL 的 DELETE 语句而言,其返回的是受该命令影响的行数[^1]。
如果没有任何记录被删除,则返回值为 0 表明未找到符合条件的数据项并因此无任何更改发生;反之如果有 n 条满足条件的数据被执行了删除动作,则会得到正整数值 n 作为响应结果[^5]。
#### Mapper 接口中的方法签名设计
为了更好地处理这些情况,在编写对应的 Java Mapper 接口时可以采用不同类型的返回值:
- **void 类型**: 这种方式不会提供关于操作成功的直接反馈信息给调用者。
- **boolean 类型**: 当映射函数完成之后能够告知客户端此次尝试是否有实际效果(即是否存在匹配项),但是无法得知具体的受影响数量。
- **int 或 long 类型**: 此类最为常用也最直观的方式之一就是让接口函数返回 int 或 long 值表示所修改/移除的目标数目[^4]。
```java
// 返回值为空
void deleteById(Long id);
// 返回值为布尔类型
boolean deleteUserById(Long id);
// 返回值为删除的条数
long removeUserById(Long id);
```
上述代码片段展示了三种不同的方法定义风格及其预期行为。
#### XML 映射文件配置实例
配合以上提到的方法声明形式,在相应的 XML 文件里也需要做适当调整以确保二者之间的一致性和正确性。这里给出一个简单的例子用于说明如何实现带有参数传递功能的标准删除逻辑[^2]。
```xml
<delete id="removeUserById" parameterType="Long">
DELETE FROM t_user WHERE id = #{id}
</delete>
```
此段 XML 定义了一个名为 `removeUserById` 的删除指令,并指定了它接受 Long 类型的输入参数 `id`,同时将要作用于表 `t_user` 上面去查找具有指定 ID 属性的对象然后将其从数据库中清除掉。
阅读全文
相关推荐


















