mybatis-plus-Cud操作
Posted bosblogs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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("[email protected]");
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);
以条件构造器为参数的删除
以上是关于mybatis-plus-Cud操作的主要内容,如果未能解决你的问题,请参考以下文章