PageHelper的问题

如果分页语句没有被消耗掉,它一直保留着,直到被织入到下一次查询语句,如果 被织入的查询语句自己有LIMIT限制,那么两个LIMIT就导致语法错误了。

PageHelper.startPage(pageNo, pageSize);
if (flag) {
    aaaMapper.listAll();
}
aaaMapper.getFirstOne();
<select id="listAll" resultType="UserPO">
    select name from user
</select>

<select id="getFirstOne" resultType="String">
    select name from user limit 1
</select>

由于使用的ThreadLocal,同一进程的请求,分页语句甚至会织入到下次请求的某个查询语句中。

所以最好让startPage()能与目前查询语句紧贴再一起,确保LIMIT内容能被正确的使用掉。

原文地址:https://www.cnblogs.com/deolin/p/8117362.html