在 MyBatis 中,update()
方法返回的 int
表示 受影响的记录条数(即:成功被更新的数据库行数)。
示例说明:
假设你有如下语句:
int rows = sqlSession.update("com.example.UserMapper.updateUser", user);
如果该 updateUser
操作实际更新了 2 条记录,那么 rows
的值就是 2
。如果没有任何记录被更新,返回值就是 0
。
实际应用场景中的意义:
- 用于判断操作是否成功:例如你希望更新一条用户信息,返回值为
1
才说明确实更新成功。 - 用于处理并发冲突:乐观锁的场景中,通常要求更新时带上版本号,若返回
0
则说明数据已经被其他线程修改了。
特别提醒:
- 返回值 不代表语句执行是否报错,只是表示有多少条记录被影响。如果 SQL 写得正确但条件不匹配,返回 0。
- 对于批量更新,返回的就是匹配并被更新的总行数。
如果你有 insert()
或 delete()
,同样也是返回受影响的行数。