MybatisPlus相关用法

一、MyBatisPlus中使用or()和and()遇到的问题及细节处理

写法一:
LambdaQueryWrapper<Task> queryWrapper = new QueryWrapper<Task>().lambda();
 queryWrapper
  .eq(Task::getUserId, "15")
  .eq(Task::getStatus, 2)
  .or()
  .eq(Task::getFileSize, 3251544304L);
  
上面这种写法等价于下面的sql  
SELECT * FROM task WHERE user_id = ? AND status = ? OR file_size = ? 
写法二:
LambdaQueryWrapper<Task> queryWrapper2 = new QueryWrapper<Task>().lambda();
 queryWrapper2
  .eq(Task::getUserId, "15")
  .and(wrapper -> wrapper.eq(Task::getStatus, 2).or().eq(Task::getFileSize, 3251544304L));
  
上面这种写法对应的sql如下
SELECT * FROM task WHERE user_id = ? AND ( status = ? OR file_size = ? )  

二、Mybatis Plus 更新update操作

1、根据ID更新 updateById

    @Test
    void updateTest(){
        User user = new User();
        user.setId(19); //查询id的条件
        user.setRole("updateTest"); //更新字段的值
        System.out.println(userDao.updateById(user));
        //返回int类型,这里修改的是一条,返回1就是成功了,如果修改多条,就返回多少个数量,
        //如果返回的是0表示没有搜索到这条数据,修改不成功。
    }
}

2、根据条件更新update

方式1:使用QueryWrapper 操作
   @Test
    void updateTest(){
        User user = new User();
        user.setRole("updatewhere"); //更新的字段
        // Query对象,用于设置条件,传User实体
        QueryWrapper<User> wrapper = new QueryWrapper<>(); 
        wrapper.eq("role","asdf"); // 设置查询条件
        userDao.update(user, wrapper);
    }


方式2:使用UpdateWrapper操作(推荐)
  @Test
    void updateTest2(){
        //UpdateWrapper更新操作
        UpdateWrapper<User> warp = new UpdateWrapper<>();
        //通过set设置需要修改的内容,eq设置条件
        warp.set("pwd","warpper").set("token","warptoken").eq("user","zyh4");
        System.out.println(userDao.update(null,warp));
    }

三、Mybatis Plus 聚合函数 MAX() 操作

QueryWrapper<RmIndexTypeInfo> wrapper = new QueryWrapper<>();
            wrapper.eq("VC_ANALYSOBJ_ID", vcAnalysobjId)
                    .isNotNull("VC_INDEX_TYPE_PID")
                    .eq("VC_INDEX_TYPE_PID", vcIndexTypePid)
                    .select("nvl(MAX(L_SORT),0) AS NODESXH");
            Map<String, Object> map = this.getMap(wrapper);
            Integer nodeSxh = map.get("NODESXH") == null ? 0 : Integer.valueOf(String.valueOf(map.get("NODESXH")));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

macrohua

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值