最近项目中使用了mybatis plus,今天在开发一个分页功能的时候,项目运行时报错:
Caused by: java.sql.SQLException: sql injection violation, syntax error: syntax error, error in :'ESC; LIMIT ?,?', expect LIMIT, actual LIMIT pos 621, line 23, column 29, token LIMIT
mapper中的方法声明:
IPage<XueXingZuDuiZhaoMaVo> selectWithMingCheng(IPage<Vo> pageData, @Param("vo") Vo vo);
mapper.xml文件中的SQL语句:
ORDER BY
XU_HAO DESC;
报错的SQL语句:
ORDER BY
XU_HAO DESC; LIMIT ?,?
可以看到,mybatis plus 在进行分页查询时会自动给自定义的SQL语句加上LIMIT关键字进行查询,由于自定义的SQL语句有分号,导致mybatis plus添加LIMIT 后不能组成一个有效的SQL语句。
解决方法:去掉自定义SQL语句末尾的分号。
在使用MyBatisPlus进行分页查询时,因自定义SQL语句末尾的分号导致语法错误。本文详细介绍了错误原因及解决方法,即去除分号以确保SQL语句的有效性。
1万+

被折叠的 条评论
为什么被折叠?



