经常会遇到这样的情况,list不只1000条,mapper里面用的in语法,超过1000条会报错。
在mapper里面限制1000条不太合适,因为mapper语法不如java灵活,所以最好的办法是在java层进行拆分,然后分别调用mapper。
代码:
if(dataList.size() > 990){
int count = 0;
while(count<dataList.size()) {
int countNext = count + 990;
if(countNext > dataList.size()) {
countNext = dataList.size();
}
List<String> subList = dataList.subList(count, countNext);
// 查询数据库的逻辑
count = countNext;
}
}else{
// 查询数据库的逻辑
}