原文链接: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 – 编程屋

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐