在 MyBatis 中,update() 方法返回的 int 表示 受影响的记录条数(即:成功被更新的数据库行数)。

示例说明:

假设你有如下语句:

int rows = sqlSession.update("com.example.UserMapper.updateUser", user);

如果该 updateUser 操作实际更新了 2 条记录,那么 rows 的值就是 2。如果没有任何记录被更新,返回值就是 0

实际应用场景中的意义:

  • 用于判断操作是否成功:例如你希望更新一条用户信息,返回值为 1 才说明确实更新成功。
  • 用于处理并发冲突乐观锁的场景中,通常要求更新时带上版本号,若返回 0 则说明数据已经被其他线程修改了。

特别提醒:

  • 返回值 不代表语句执行是否报错,只是表示有多少条记录被影响。如果 SQL 写得正确但条件不匹配,返回 0。
  • 对于批量更新,返回的就是匹配并被更新的总行数。

如果你有 insert()delete(),同样也是返回受影响的行数。