图为mybatis-plus的方法,以下代码为测试代码
@RequestMapping("/getInfo2")
public String updateInfo() {
QueryWrapper<SdTest> queryWrapper = new QueryWrapper<SdTest>();
queryWrapper.eq("flag", "1");
//DocSet s = docSetService.getOne(queryWrapper);
//docSetService.updateById(s);
SdTest doc = new SdTest();
doc.setName("小鸟");
sdTestService.update(doc,queryWrapper);
System.out.println("第一次更新》》》》》》》》》》》》》》》》》》》》》》");
return "更新成功";
}
实体类:
@TableName(value = "sdtest")
@Data
public class SdTest implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private Integer flag;
}
假如实体类的类型为Integer时,他不会将不设置的Integer字段更新:
当为int时,即使不设置的字段也会更新,sql语句为:
用update时,不设置值的不会更新,updateById会将所有值更新,用update当需要将字段值更新成null的时候可用UpdateWrapper将字段设置为null