MyBatis:使用Mybatis执行sql后多出limit ?和select count(0)的问题
1.在使用MyBatis执行SQL(包含分页功能)的时候,明明SQL里没写LIMIT,执行时却多出了一个LiMIT。
2.在使用MyBatis执行SQL的时候,明明SQL里写的是SELECT * ...,执行时却执行了SELECT count(0) ...,后文中对此Bug进行说明。
解决方案:分页查询数据之前先清理分页缓存。
PageHelper.clearPage();
//clearPage()方法中调用的是: LOCAL_PAGE.remove(); //删除此线程本地的当前线程的值变量。 public void remove() { ThreadLocalMap m = getMap(Thread.currentThread()); if (m != null) m.remove(this); }
只要执行一次清楚缓存就行。后面要使用分页查询数据,注释掉此方法。
参考博客:https://blog.csdn.net/qq_43265673/article/details/107673422
彼时当年少,莫负好时光。