MybatisPlus的mapper.update(entity,wrapper)方法第一个参数的作用

mapper的update方法,通过构造wrapper,已经能实现各种复杂update操作,所以我不理解第一个参数的作用,今天测试并记录一下。
第一个实体类参数的作用是属性赋值,等效于wrapper.set,当一个属性同时有实体类赋值与wrapper赋值时,代码如下

    @Test
    void testUpdateWrapper() {
        UpdateWrapper<Camel> updateWrapper = new UpdateWrapper<>();
        updateWrapper.gt("age", 20);
        updateWrapper.set("pwd", "abc");
        Camel camel = new Camel();
        camel.setAge(2);
        camel.setPassword("123");
        camelMapper.update(camel, updateWrapper);
    }

执行sql,可以看到实体类属性值的优先级低于wrapper.set的

UPDATE camel SET pwd='123', age=2, pwd='abc' WHERE (age > 20)

通过实体类可以实现属性的快速赋值,没有这种需求时第一个参数可以设置为null。

// IntelliJ API Decompiler stub source generated from a class file // Implementation of methods is not available package com.baomidou.mybatisplus.service; public interface IService <T> { boolean insert(T t); boolean insertAllColumn(T t); boolean insertBatch(java.util.List<T> list); boolean insertBatch(java.util.List<T> list, int i); boolean insertOrUpdateBatch(java.util.List<T> list); boolean insertOrUpdateBatch(java.util.List<T> list, int i); boolean insertOrUpdateAllColumnBatch(java.util.List<T> list); boolean insertOrUpdateAllColumnBatch(java.util.List<T> list, int i); boolean deleteById(java.io.Serializable serializable); boolean deleteByMap(java.util.Map<java.lang.String,java.lang.Object> map); boolean delete(com.baomidou.mybatisplus.mapper.Wrapper<T> wrapper); boolean deleteBatchIds(java.util.Collection<? extends java.io.Serializable> collection); boolean updateById(T t); boolean updateAllColumnById(T t); boolean update(T t, com.baomidou.mybatisplus.mapper.Wrapper<T> wrapper); boolean updateForSet(java.lang.String s, com.baomidou.mybatisplus.mapper.Wrapper<T> wrapper); boolean updateBatchById(java.util.List<T> list); boolean updateBatchById(java.util.List<T> list, int i); boolean updateAllColumnBatchById(java.util.List<T> list); boolean updateAllColumnBatchById(java.util.List<T> list, int i); boolean insertOrUpdate(T t); boolean insertOrUpdateAllColumn(T t); T selectById(java.io.Serializable serializable); java.util.List<T> selectBatchIds(java.util.Collection<? extends java.io.Serializable> collection); java.util.List<T> selectByMap(java.util.Map<java.lang.String,java.lang.Object> map); T selectOne(com.baomidou.mybatisplus.mapper.Wrapper<T> wrapper); java.util.Map<java.lang.String,java.lang.Object> selectMap(com.baomidou.mybatisplus.mapper.Wrapper<T> wrapper); java.lang.Object selectObj(com.baomidou.mybatisplus.mapper.Wrapper<T> wrapper); int selectCount(com.baomidou.mybatisplus.mapper.Wrapper<T> wrapper); java.util.List<T> selectList(com.baomidou.mybatisplus.mapper.Wrapper<T> wrapper); com.baomidou.mybatisplus.plugins.Page<T> selectPage(com.baomidou.mybatisplus.plugins.Page<T> page); java.util.List<java.util.Map<java.lang.String,java.lang.Object>> selectMaps(com.baomidou.mybatisplus.mapper.Wrapper<T> wrapper); java.util.List<java.lang.Object> selectObjs(com.baomidou.mybatisplus.mapper.Wrapper<T> wrapper); com.baomidou.mybatisplus.plugins.Page<java.util.Map<java.lang.String,java.lang.Object>> selectMapsPage(com.baomidou.mybatisplus.plugins.Page page, com.baomidou.mybatisplus.mapper.Wrapper<T> wrapper); com.baomidou.mybatisplus.plugins.Page<T> selectPage(com.baomidou.mybatisplus.plugins.Page<T> page, com.baomidou.mybatisplus.mapper.Wrapper<T> wrapper); }
06-02
package com.service.impl; import org.springframework.stereotype.Service; import java.util.Map; import java.util.List; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.utils.PageUtils; import com.utils.Query; import com.dao.YonghuDao; import com.entity.YonghuEntity; import com.service.YonghuService; import com.entity.vo.YonghuVO; import com.entity.view.YonghuView; @Service("yonghuService") public class YonghuServiceImpl extends ServiceImpl<YonghuDao, YonghuEntity> implements YonghuService { @Override public PageUtils queryPage(Map<String, Object> params) { Page<YonghuEntity> page = this.selectPage( new Query<YonghuEntity>(params).getPage(), new EntityWrapper<YonghuEntity>() ); return new PageUtils(page); } @Override public PageUtils queryPage(Map<String, Object> params, Wrapper<YonghuEntity> wrapper) { Page<YonghuView> page =new Query<YonghuView>(params).getPage(); page.setRecords(baseMapper.selectListView(page,wrapper)); PageUtils pageUtil = new PageUtils(page); return pageUtil; } @Override public List<YonghuVO> selectListVO(Wrapper<YonghuEntity> wrapper) { return baseMapper.selectListVO(wrapper); } @Override public YonghuVO selectVO(Wrapper<YonghuEntity> wrapper) { return baseMapper.selectVO(wrapper); } @Override public List<YonghuView> selectListView(Wrapper<YonghuEntity> wrapper) { return baseMapper.selectListView(wrapper); } @Override public YonghuView selectView(Wrapper<YonghuEntity> wrapper) { return baseMapper.selectView(wrapper); } }
06-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值