原文: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);
 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐