mybatis-plus-Cud操作

MP 的更新

 

/**
* 传入实体对象 ID 必须设置
*/
@Test
public void updataById() {
User user = new User();
user.setId(1087982257332887553L);
user.setAge(35);
//生成的sql: UPDATE user SET age=? WHERE id=?
int rows = userMapper.updateById(user);
System.out.println(rows);


}

/**
* 根据whereEntity 条件,更新
* 第一个参数传入entity 实体类对象 会被设置为要set的值(set条件值可以为null)
* 第二个参数 updateWrapper 实体对象封装操作类(可以为null里面的entity用于生成where语句条件)
* 生成的sql:UPDATE user SET age=?, email=? WHERE name = ? AND age = ?
* new UpdateWrapper<>() 也可传入实体类对象 对象属性也会被作为where的条件
*/
@Test
public void update() {
UpdateWrapper<User> wrapper = new UpdateWrapper<>();
wrapper.eq("name", "李一伟").eq("age", 28);
//如果更新个别字段 使用set()方法
wrapper.eq("name", "李一伟").set(true, "age", 30);
User user = new User();
user.setEmail("lyw2019@boamidou.com");
user.setAge(29);
int rows= userMapper.update(user, wrapper);


}
/**
* Lambda函数更新
*
*/
@Test
public void updateLambda() {
LambdaUpdateWrapper<User> lambdaUpdate = Wrappers.<User>lambdaUpdate();
lambdaUpdate.eq(User::getName, "李一伟").eq(User::getAge, 30).set(User::getAge, 31);
//生成的sql: UPDATE user SET age=? WHERE name = ? AND age = ?
int rows = userMapper.update(null, lambdaUpdate);
System.out.println(rows);

}
/**
* Lambda函数更新 链式调用 构造器传入接口实现对象
* 返回boolean 值
*
*/
@Test
public void updateLambdaChina() {
boolean updatewrapper = new LambdaUpdateChainWrapper<User>(userMapper)
.eq(User::getName, "李一伟").eq(User::getAge, 30).set(User::getAge, 31).update();
//生成的sql: UPDATE user SET age=? WHERE name = ? AND age = ?

System.out.println(updatewrapper);

}
下面测试删除方法
根据id删除
/**
* deleteById 根据id
*
*/
@Test
public void deleteById(){
int i = userMapper.deleteById(1149166824346210305L);
//生成的sql : DELETE FROM user WHERE id=?
System.out.println(i);

}


普通方法删除
/**
* deleteByMap
*
*/
@Test
public void deleteByMap(){
Map<String,Object> columnMap = new HashMap<>();
columnMap.put("name", "李一伟");
columnMap.put("age", 25);

int i = userMapper.deleteByMap(columnMap);
//生成的sql :DELETE FROM user WHERE name = ? AND age = ?
System.out.println(i);

}

  /**
* deleteBatchIds
*  批量删除时使用
*/
@Test
public void deleteBatchIds(){


int i = userMapper.deleteBatchIds(Arrays.asList(74564564653453L,8754454676445L,85567L));
//生成的sql : DELETE FROM user WHERE id IN ( ? , ? , ? )
System.out.println(i);

}

/**
* deleteByWrapper
*
*Wrappers.<User>lambdaQuery() 可以传入实体类 属性会被生成where条件
*/
@Test
public void deleteByWrapper(){
LambdaQueryWrapper<User> wrapper = Wrappers.<User>lambdaQuery();
wrapper.eq(User::getAge,27).or().gt(User::getAge,40);


int i = userMapper.delete(wrapper);
//生成的sql :DELETE FROM user WHERE age = ? OR age > ?
System.out.println(i);

}


以条件构造器为参数的删除
 
原文地址:https://www.cnblogs.com/bosblogs/p/11180035.html