在 MyBatis 中,这四个方法都是用于执行数据库更新操作的,但是它们之间有些许区别:
-
updateByExample:
- 这个方法会根据指定的条件来更新数据库中的记录。
- 通常情况下,你需要提供一个对象作为更新的数据,以及一个示例对象(例如一个对象的属性作为查询条件),MyBatis会根据这个示例对象的条件去更新匹配的记录。
-
updateByExampleSelective:
- 类似于
updateByExample
,但是它只会更新对象中非空的字段。换句话说,如果对象中某个属性为null,那么对应的数据库字段就不会被更新。
- 类似于
-
updateByPrimaryKey:
- 这个方法会根据给定的主键值来更新数据库中的记录。
- 你需要提供一个完整的对象作为更新的数据,而不是一个示例对象。
-
updateByPrimaryKeySelective:
- 类似于
updateByPrimaryKey
,但是它只会更新对象中非空的字段。 - 如果对象中某个属性为null,那么对应的数据库字段就不会被更新。
- 类似于
这些方法在不同的场景下有不同的用途。如果你想根据某个条件来更新记录,可以使用 updateByExample
系列方法。如果你已经有了对象的主键值,可以使用 updateByPrimaryKey
系列方法。而如果你只想更新对象中非空的字段,可以使用带有 Selective
后缀的方法。