小工具知识网

当前位置: 首页 > 行业知识 > SQLSyntaxEProrException异常产生原因及解决方案

行业知识

SQLSyntaxEProrException异常产生原因及解决方案

2026-11-01 20:41:31 来源:互联网转载

java.sq1.SQLSyntaxEProrException异常产生原因及解决方案

01 异常的发生场景

  • 在���mybatis-plus写了一个查询接口后出现的问题
    java.sq1.SQLSyntaxEProrException
    • 日志报错的意思是sql语法问题

      02 异常的产生及其原因

      • 我最开始又认为是MySQL数据库表设计的问题,但是将SQL语句在Navicat中,查询正常,所以我怀疑是mybatis-plus部分出了问题

      •                         SELECT        t2.remark,        t2.course_name,        t1.ms_course_id,        t2.course_cover,        t3.user_name    FROM        sys_user_ms_course AS t1            INNER JOIN ms_course AS t2 ON t1.ms_course_id = t2.course_id            INNER JOIN sys_user AS t3 ON t2.teacher_id = t3.user_id        ${ew.customSqlSegment}
      • 测试后确定前端传输的数据没问题

      • 最后发现l简单的问题,数据库字段名和mybatis-plus的查询语句不匹配

        03 解决方式

        • 修改mybatis-plus的查询语句
              @Override    public Page page(Page page, SysUserMsCoursePage sysUserMsCoursePage) {        QueryWrapper wrapper= Wrappers.query();        wrapper.eq("t1.sys_user_id",sysUserMsCoursePage.getSysUserId());//这里的字段名问题,造成的SQL语法错误        wrapper.eq(sysUserMsCoursePage.getTeacherId()!=null,"t2.teacher_id",sysUserMsCoursePage.getTeacherId());        wrapper.like(!StringUtils.isEmpty(sysUserMsCoursePage.getCourseName()),"t2.course_name",sysUserMsCoursePage.getCourseName());        return msCourseMapper.sysUserPage(page,wrapper);    }

上一篇:揭秘大宛的正确读音,探索发音奥秘!

下一篇:游戏服务器怎么重置系统?