• 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);

    }


    以条件构造器为参数的删除
     
  • 相关阅读:
    性能分析
    单例模式
    装饰者模式
    开发Chrome Extension截取你微博的帐号密码
    201703-3 markdown
    201612-3 权限查询
    201609-3 炉石传说
    201604-2 俄罗斯方块
    201604-3 路径解析
    201512-1 数位之和
  • 原文地址:https://www.cnblogs.com/bosblogs/p/11180035.html
Copyright © 2020-2023  润新知