Mybatis中方向生成中updateByPrimaryKey,updateByPrimaryKeySelective,selectByExample的用法以及误区
最近开始学习了MyBits反向生成的XML,节约大量了我们自己去写SQL语句的时候,对我们来说是一大福利,但是由于调用的方法是生成的时候自动生成的,难免我们会误解,我总结了三个比较容易用到并且容易用错的三个,希望对大家有帮助~
updateByPrimarykey以及updateByPrimaryKeySelective用法与区别
区别:1.很容易发现,这两个方法差距在“Selective”(选择性的)
2. 两个方法都是根据主键更新,但是,一个是更新的部分有选择的,一个没有的。
3.updateByPrimaryKey传递过来的对象,假如数据库有name=卢本伟,但是传递过来的对象中name=null,使用该方法就会导致数据库中的name就祭天了。但是用updateByPrimaryKeySelective的话就不会了,如果对象中name=null,那么就会直接跳过,就不会祭天了,所以你打算用那个呢?
用法:@Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
public int updateStateCourier(Courier courier){
return courierMapper.updateByPrimaryKey(courier);
}