MyBatisPlusはバックエンドコレクションクエリを実装します------

jsonデータは今日フロントエンドから来ました

"point": [1,2,3,4,5,6]

このクエリをバックエンドに渡すために、私は
当初、ステートメントは次のようになっていると思っていましたが、結果はそうではなく、私自身の考えは単純すぎました

SELECT * FROM statistics_displacement WHERE POINT = '1' AND POINT = '2' ;

文を変更し、inキーワードを使用しました


SELECT * FROM statistics_displacement  WHERE POINT IN ('1','2');

結合クエリを実現するのは主に次のコードです

     queryWrapper.in("point", points);
 @Override
    public void ComplexQuery(Page<StatisticsDisplacement> pageParam, ComplexQuery complexQuery) {


        QueryWrapper<StatisticsDisplacement> queryWrapper = new QueryWrapper<>();
//        queryWrapper.orderByAsc("sort");

        if (complexQuery == null){
            baseMapper.selectPage(pageParam, queryWrapper);
            return;
        }
        //传入list集合
        List points = complexQuery.getPoints();
        System.out.println("=================");
        System.out.println(points);
        System.out.println("=================");
        Integer data = complexQuery.getData();
        String begin = complexQuery.getBegin();
        String end = complexQuery.getEnd();

        //复杂查询

        queryWrapper.in("point", points);

        if (!StringUtils.isEmpty(data) ) {
            queryWrapper.eq("data", data);
        }

        if (!StringUtils.isEmpty(begin)) {
            queryWrapper.ge("gmt_create", begin);
        }

        if (!StringUtils.isEmpty(end)) {
            queryWrapper.le("gmt_create", end);
        }

        baseMapper.selectPage(pageParam, queryWrapper);
    }

バックエンドステートメント

SELECT id,date_calculated,real_time,x_dis,y_dis,h_dis,two_dis,three_dis,point,data,gmt_create,gmt_modified FROM statistics_displacement WHERE point IN (?,?) AND data = ? AND gmt_create >= ? AND gmt_create <= ? LIMIT 0,5 
Parameters: 1(Integer), 2(Integer), 1(Integer), 2018-12-20 11:17:12(String), 2018-12-30 11:17:12(String)

このエンティティエンティティクラスは

package com.chx.disService.query;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@ApiModel(value = "数据查询对象", description = "数据查询对象封装")
@Data
public class ComplexQuery implements Serializable {

    //这个是api后面的解释
    @ApiModelProperty(value = "测点名称 1号监测点 2号监测点")
    private List points;

    @ApiModelProperty(value = "实时数据 1小时数据 2小时数据")
    private Integer data;

    @ApiModelProperty(value = "查询开始时间", example = "2018-12-20 11:17:12")
    private String begin;//注意,这里使用的是String类型,前端传过来的数据无需进行类型转换

    @ApiModelProperty(value = "查询结束时间", example = "2018-12-30 11:17:12")
    private String end;
}

次のコレクションクエリでは、次のキーワードを使用します。

おすすめ

転載: blog.csdn.net/he1234555/article/details/115267664