zoukankan      html  css  js  c++  java
  • 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);

    }


    以条件构造器为参数的删除
     
  • 相关阅读:
    JS中for循环两种写法的坑
    office web apps安装部署,配置https,负载均衡(三)服务器连接域控制器
    office web apps安装部署,配置https,负载均衡(二)域控制器安装并配置域账号
    office web apps安装部署,配置https,负载均衡(一)背景介绍
    如何申请阿里云免费SSL证书(可用于https网站)并下载下来
    树莓派Raspberry实践笔记-常用Linux命令
    树莓派Raspberry实践笔记—轻松解决apt-get慢的问题
    树莓派Raspberry实践笔记-Arduino IDE
    树莓派Raspberry实践笔记—显示分辨率配置
    关于如何坚持自学的3本图书分享
  • 原文地址:https://www.cnblogs.com/bosblogs/p/11180035.html
Copyright © 2011-2022 走看看