原文:mybatisplus-UpdateWrapper使用_mikelv01的博客-CSDN博客_mybatisplus updatewrapper
Mybatis-Plus(mbp) 提供 Wrapper 极大的减少大家的写SQL 的时间,Wrapper 类封装了大量的逻辑方法 eq , gt , lt等,使得操作数据库的代码进一步简洁。
在代码中有更新数据的需求,发现 mbp 提供了 UpdateWrapper 类简化更新的操作。
继承自 BaseMapper 的自定以mapper的 update() 有这两个参数
/**
* 根据 whereEntity 条件,更新记录
*
* @param entity 实体对象 (set 条件值,可以为 null)
* @param updateWrapper 实体对象封装操作类(可以为 null,里面的 entity 用于生成 where 语句)
*/
int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
实体对象可以为null且为set条件值,说明有两种方法可以实现更新。
第一种:
将需要更新的字段,设置到entity 中
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name","shimin");
User user = new User();
user.setAge(18);
Integer rows = userMapper.update(user, updateWrapper);
第二种:
可以将entity设置为 null ,将需要更新的字段设置到 UpdateWrapper 中
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("id","123")eq("name","shimin");
Integer rows = userMapper.update(null, updateWrapper);