一、PageHalper
PageHalper不生效问题
首先你要保证在 PageHalper.startPage(page,count);代码之后紧跟一条sql查询语句,记住是sql,如果你下面跟了一个service层的方法,但是这个方法里面有两条sql查询语句,则他只会对第一条显示查询条数,
想要理解上面的意思,首先你要知道PageHalper是相当于改变你的sql语句进行查询出来的,
并且尽量不要再pageInfo前面处理你返回的数据,不然就会导致你的totel为count数,而不是数据库总数
举个例子
PageHalper.startPage(1,4);
List<User> u=UserintegerService.getUser();
new PageInfo(u);
//UserintegerService中的getUser()方法包括两个相同的查询数据
UserintegerMapper.getUser();//第一个查询数据为 4
UserintegerMapper.getUser();//第二个查询 数据为数据库实际的值,
也就是PageHalper只能限制距离他最近了一条数据库查询语句。
二、redis缓存
如果不做分页可去看我的另一个博客,
下面讲一下做分页的情况;
如果我们要做分页按照我们上面的写法就不能在service层里面来进行缓存数据库查询出来的总数,这样的话我们是不能通过PageHalper做分页的,所以我们可以在查询每个页码时拼写一个key将返回的pageInfo存入redis,当更新数据库操作时通过redis的scan模糊查询有关的key进行删除操作,下次查询时再次缓存。