原文链接:mybatisPlus拼接了两个limit – 编程屋
昨天产品上线的时候,页面列表刷新突然出了服务器异常,打开日志查看出现了如下错误:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0,10' at line 5
### The error may exist in com/skip/service/lesson/dao/LessonTeacherMappper.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT id,teacher_name,suitable_object,copyright_ownership,introduce,class_num,size,create_time,update_time,delete_flag FROM lesson_teacher_plan WHERE delete_flag=0 ORDER BY create_time DESC LIMIT ? LIMIT ?,?
### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0,10' at line 5
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0,10' at line 5
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:235)
而自己的方法代码如下:
@Override
public PageInfo<LessonTeacherResult> getLessonTeacherList(LessonTeacherDto dto) {
List<LessonTeacherResult> lessonTeacherResultList = new ArrayList<>();
LambdaQueryWrapper<LessonTeacherPlan> queryWrapper = new LambdaQueryWrapper<>();
if (dto.getSuitableObject() != null && dto.getSuitableObject() >= 0){
queryWrapper.eq(LessonTeacherPlan::getSuitableObject,dto.getSuitableObject());
}
queryWrapper.orderByDesc(LessonTeacherPlan::getCreateTime);
Page<LessonTeacherPlan> page = new Page<>(dto.getPageNum(), dto.getPageSize());
Page<LessonTeacherPlan> lessonTeacherPlanPage = baseMapper.selectPage(page, queryWrapper);
lessonTeacherPlanPage.getRecords().forEach(lessonTeacher -> {
LessonTeacherResult lessonTeacherResult = new LessonTeacherResult();
lessonTeacherResult.setId(lessonTeacher.getId());
lessonTeacherResult.setTeacherName(lessonTeacher.getTeacherName());
lessonTeacherResult.setSuitableObject(lessonTeacher.getSuitableObject());
lessonTeacherResult.setClassNum(lessonTeacher.getClassNum());
lessonTeacherResult.setCopyrightOwnership(lessonTeacher.getCopyrightOwnership());
lessonTeacherResult.setClassNum(lessonTeacher.getClassNum());
lessonTeacherResult.setIntroduce(lessonTeacher.getIntroduce());
lessonTeacherResult.setCreateTime(lessonTeacher.getCreateTime());
lessonTeacherResult.setUpdateTime(lessonTeacher.getUpdateTime());
if (lessonTeacher.getSize() != null ) {
lessonTeacherResult.setSize(CompareUtil.formatFileSize(Math.round(Math.random()*lessonTeacher.getSize())));
lessonTeacherResult.setSize(lessonTeacher.getSize());
}
lessonTeacherResultList.add(lessonTeacherResult);
});
List<LessonTeacherResult> collect = lessonTeacherResultList.stream()
.sorted(Comparator.comparing(LessonTeacherResult::getCreateTime).reversed()).collect(Collectors.toList());
PageInfo<LessonTeacherResult> pageInfo = new PageInfo<>();
pageInfo.setPages((int)lessonTeacherPlanPage.getPages());
pageInfo.setPageNum((int)lessonTeacherPlanPage.getCurrent());
pageInfo.setPageSize((int)lessonTeacherPlanPage.getSize());
pageInfo.setTotal(lessonTeacherPlanPage.getTotal());
pageInfo.setList(collect);
return pageInfo;
}
以上只是部分内容,为了维护方便,本文已迁移到新地址:mybatisPlus拼接了两个limit – 编程屋