MybatisPlus QueryWapper 用法参考

官方介绍

MyBatis-Plus CRUD接口

MyBatis-Plus 条件构造器

IN 操作符

  1. 对集合进行非空判断,否则mysql 出现" select  * (where colum in ())" 报错
List<Object> taskIdList =  resultsMapper.selectObjs(qw);
QueryWrapper<ResultSummary> qwJiraTotal = new QueryWrapper<>();
Integer taskJiraTotalCount = 0;
if(!taskIdList.isEmpty()){
    qwJiraTotal.select("distinct jira_key").in("result_id", taskIdList);
    taskJiraTotalCount = resultSummaryMapper.selectList(qwJiraTotal).size();
}

OR 拼接/嵌套

        1. 拼接 where a AND (b OR c)

/* 按天统计指定类型任务的个数 */
List<String> eqSuite = Arrays.asList("smoke_test", "beta_test", "monkey_test", "monkey_camera", "mtbf_test");
        
QueryWrapper<Results> qwProjectFirstTask = new QueryWrapper<>();
        qwProjectFirstTask
          .eq("project_id", projectid)
          .between("date_format(create_time, '%Y-%m-%d')", dateStart, dateEnd);
        /* or 拼接 start */
        qwProjectFirstTask
          .and(wrapper 
            -> wrapper
               .in("suite_name", eqSuite)
               .or().likeRight("suite_name", "smoke_dev"));
        /* or 拼接 end */
        qwProjectFirstTask
          .select("count(*) as tasknum", "date_format(create_time, '%Y-%m-%d') as mdate")
          .groupBy("date_format(create_time, '%Y-%m-%d')");
          
        List<Map<String, Object>> resultSrc = resultsMapper.selectMaps(qwProjectFirstTask);

between

1. 数据库是datetime 格式,查询参数是Date类型时,左包含需要把查询参数Date 转成String 类型Date

QueryWrapper<Results> qwProjectFirstTask = new QueryWrapper<>();
qwProjectFirstTask
          .select("count(*) as tasknum", "date_format(create_time, '%Y-%m-%d') as mdate")
          .eq("project_id", projectid)
          .between("date_format(create_time, '%Y-%m-%d')",dateToY_M_D(dateStart), dateToY_M_D(dateEnd))
          .groupBy("date_format(create_time, '%Y-%m-%d')");
          
        List<Map<String, Object>> resultSrc = resultsMapper.selectMaps(qwProjectFirstTask);



/* java.util.Date to String */
private String dateToY_M_D(java.util.Date date){
    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
    String s = sf.format(date);
    return s;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值