行业知识
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); }
- 修改mybatis-plus的查询语句
-
-
下一篇:游戏服务器怎么重置系统?