在mybatis中常常用到这2中方法。根据实体类主键进行跟新,并返回1或者0.

  • int updateByPrimaryKeySelective(TbItem record);
  • int updateByPrimaryKey(TbItem record);

 (1)更新语句上的差异:

 

 因此:

updateByPrimaryKeySelective会对字段进行判断再更新(如果为Null就忽略更新),如果你只想更新某一字段,可以用这个方法。

updateByPrimaryKey对你注入的字段全部更新,将为空的字段在数据库中置为NULL。

(2)返回值int,代表的是什么。

验证返回值:由于是根据主键进行更新(数据库只存在一个主键)所以返回值为1或者0,1表示修改成功(即使不做任何修改返回值也为1),0表示更新失败。

前台不做任何修改打印返回值,得到结果

数据库做更新操作,更新值=原值,打印结果如下:

总结:说明数据库并不会判断更新前后的值是否相等,若执行成功就返回受影响的行数。 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐