syntax error, error in :’it 5 LIMIT ? ‘, expect LIMIT, actual LIMIT pos【解决方法】

今天爱分享给大家带来syntax error, error in :’it 5 LIMIT ? ‘, expect LIMIT, actual LIMIT pos【解决方法】,希望能够帮助到大家。
今天检查项目日志时发现了这样一个问题:

syntax error, error in :’it 5 LIMIT ? ‘, expect LIMIT, actual LIMIT pos

问题出现原因:

由于在项目中使用了PageHelper分页插件,
PageHelper 方法使用了静态的 ThreadLocal 参数,分页参数和线程是绑定的。
只要你可以保证在 PageHelper 方法调用后紧跟 MyBatis 查询方法,这就是安全的。因为 PageHelper 在 finally 代码段中自动清除了 ThreadLocal 存储的对象。
线程中start的page 不能保证线程在当前执行退出时清理完page变量。
所以在生产环境中,PageHelper的调用在多线程的情况下没有清除ThreadLocal存储的对象,所以正常的sql语句执行时,会被PageHelper强行增加一个limit实现分页

正确示例:

syntax error, error in :’it 5 LIMIT ? ‘, expect LIMIT, actual LIMIT pos【解决方法】插图

错误示例:

syntax error, error in :’it 5 LIMIT ? ‘, expect LIMIT, actual LIMIT pos【解决方法】插图(1)

错误示例解决方法:
1.改成正确示例方式(建议)
2.清除page变量:
syntax error, error in :’it 5 LIMIT ? ‘, expect LIMIT, actual LIMIT pos【解决方法】插图(2)

人已赞赏
数据库

使用mysql过程中常见sql错误

2020-12-25 11:59:41

数据库

ERROR org.hibernate.util.JDBCExceptionReport Communications link failure【解决方法】

2020-12-26 17:59:10