mybatis plus使用报错:Caused by: java.sql.SQLException: sql injection violation, syntax error: syntax err

最近项目中使用了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语句末尾的分号。

posted @ 2020-03-07 18:10  三分魔系  阅读(560)  评论(0编辑  收藏  举报