5.MybatisPlus 更新方法

1.根据id更新

package com.mp.update;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.mp.dao.UserMapper;
import com.mp.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * @Description 测试,更新方法
 * @Author LL
 * @Date 2020-03-23 23:01
 */
@SpringBootTest
@RunWith(SpringRunner.class)
public class UpdateTest {

    @Autowired
    private UserMapper userMapper;

    //根据id更新
    @Test
    public void updateByIds(){
        User user = new User()
                .setId(1088248166370832385L)
                .setAge(26)
                .setEmail("[email protected]");
        int rows = userMapper.updateById(user);
        System.out.println("影响记录数:"+rows);
    }
}

2.以条件构造器作为参数更新方法

  其中实体类中设置的值为要更新的值(即,sql中set处要设置的值),条件构造器中设置的值为更新条件(即,sql中where处要设置的条件)。

package com.mp.update;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.mp.dao.UserMapper;
import com.mp.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * @Description 测试,更新方法
 * @Author LL
 * @Date 2020-03-23 23:01
 */
@SpringBootTest
@RunWith(SpringRunner.class)
public class UpdateTest {

    @Autowired
    private UserMapper userMapper;

    /**
     * 构造器设置条件更新
     * update(user, update);
     * 其中 第一个参数user为SQL中为set中要设置的参数
     *     第二个参数update为SQL中where中的条件
     */
    @Test
    public void update(){
        //条件构造器创建方法一
//        UpdateWrapper updateWrapper = new UpdateWrapper<>();
        //条件构造器创建方法二
        UpdateWrapper update = Wrappers.update();
        //条件构造器创建方法三
//        LambdaUpdateWrapper lambdaUpdate = Wrappers.lambdaUpdate();
        update.eq("name", "张三")
                .eq("age", 31);
        User user = new User()
                .setAge(32)
                .setEmail("[email protected]");
        int rows = userMapper.update(user, update);
        System.out.println("影响记录数:"+rows);
    }
}

 
 

3.条件构造器中set方法使用

可以直接在条件构造器中使用set()方法设置要更新的值

package com.mp.update;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.mp.dao.UserMapper;
import com.mp.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * @Description 测试,更新方法
 * @Author LL
 * @Date 2020-03-23 23:01
 */
@SpringBootTest
@RunWith(SpringRunner.class)
public class UpdateTest {

    @Autowired
    private UserMapper userMapper;

    /**
     * 构造器设置条件更新
     * 在构造其中设置要更新的值
     */
    @Test
    public void update2(){
        LambdaUpdateWrapper lambdaUpdate = Wrappers.lambdaUpdate();
        lambdaUpdate.set(User::getAge, 33)
                .set(User::getEmail, "[email protected]")
                .eq(User::getName, "张三")
                .eq(User::getAge, 32);
        int rows = userMapper.update(null, lambdaUpdate);
        System.out.println("影响记录数:"+rows);
    }
}

你可能感兴趣的:(5.MybatisPlus 更新方法)