使用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分页的时候始终报错