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("wtf2@baomidou.com");
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<User> updateWrapper = new UpdateWrapper<>();
//条件构造器创建方法二
UpdateWrapper<User> update = Wrappers.update();
//条件构造器创建方法三
// LambdaUpdateWrapper<Object> lambdaUpdate = Wrappers.lambdaUpdate();
update.eq("name", "张三")
.eq("age", 31);
User user = new User()
.setAge(32)
.setEmail("zhangsan2@baomidou.com");
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<User> lambdaUpdate = Wrappers.lambdaUpdate();
lambdaUpdate.set(User::getAge, 33)
.set(User::getEmail, "zhangsan3@baomidou.com")
.eq(User::getName, "张三")
.eq(User::getAge, 32);
int rows = userMapper.update(null, lambdaUpdate);
System.out.println("影响记录数:"+rows);
}
}