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;
}
次のコレクションクエリでは、次のキーワードを使用します。