使用SQL server分页
- 使用SQL server分页的时候踩了一个坑:
- 用mybatis-plus分页的时候始终报错

- 代码:
Page<SystemDictCatalog> page = new Page<>(data.getPage(), data.getLimit()); QueryWrapper<SystemDictCatalog> wrapper = new QueryWrapper<>(); String dicId = data.getDictId(); if (StringUtils.isNotBlank(dicId)) wrapper.eq("dictId", dicId); Page<SystemDictCatalog> pageList = this.page(page, wrapper); - 使用上面代码始终报错,控制台日志,是使用
OFFSET ? ROWS FETCH NEXT ? ROWS ONLY方法进行分页的,这和MySQL的limit是有区别的,而且这个只有在SQL server2021之后才有的关键字 - 修改后的代码:
上面多加了一个orderBy,网上搜索了一些资料,发现他们使用Page<SystemDictCatalog> page = new Page<>(data.getPage(), data.getLimit()); QueryWrapper<SystemDictCatalog> wrapper = new QueryWrapper<>(); String dicId = data.getDictId(); if (StringUtils.isNotBlank(dicId)) wrapper.eq("dictId", dicId); wrapper.orderByAsc("DictId", "SortID"); Page<SystemDictCatalog> pageList = this.page(page, wrapper);OFFSET ? ROWS FETCH NEXT ? ROWS ONLY时都会使用orderby先进行排序,我尝试了一下,的确排序之后就可以愉快的分页查询了。
- 用mybatis-plus分页的时候始终报错
文章讲述了在使用SQLserver分页时遇到的问题,MyBatis-Plus的分页方法报错,原因是没有在`OFFSETROWSFETCHNEXTROWSONLY`中加入ORDERBY。作者发现加上`orderBy`进行排序后,解决了分页查询问题。


被折叠的 条评论
为什么被折叠?



