若依分离版采用的是mybatis的技术,需要自己去手动些一些sql语句,不如mybatis-plus方便,所以在基于若依开发的过程中,我引入了mybatis-plus,在尽量少改动代码的情况下,决定使用若依框架引入的pagehelper完成分页。
一、引入依赖
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus-boot-starter.version}</version> </dependency> <!-- pagehelper 分页插件 (排除依赖,避免依赖冲突)--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>${pagehelper.boot.version}</version> <exclusions> <exclusion> <artifactId>mybatis-spring</artifactId> <groupId>org.mybatis</groupId> </exclusion> <exclusion> <artifactId>mybatis</artifactId> <groupId>org.mybatis</groupId> </exclusion> </exclusions> </dependency>
二、配置yml文件
mybatis-plus: # 搜索指定包别名 typeAliasesPackage: com.ruoyi.**.domain # 配置mapper的扫描,找到所有的mapper.xml映射文件 mapperLocations: classpath*:mapper/**/*Mapper.xml global-config: db-config: id-type: auto configuration: map-underscore-to-camel-case: true # PageHelper分页插件 pagehelper: helperDialect: mysql supportMethodsArguments: true params: count=countSql
三、分页代码
@GetMapping("/list") public TableDataInfo list(int pageNum,int pageSize) { PageHelper.startPage(pageNum,pageSize); List<Goods> list = goodsService.list(); return getDataTable(list); }
四、说明
@PreAuthorize("@ss.hasPermi('system:config:list')") @GetMapping("/list") public TableDataInfo list(SysConfig config) { startPage(); List<SysConfig> list = configService.selectConfigList(config); return getDataTable(list); }
这个是官方原版的写法,这里的controller是继承了一个baseController,里面封装了一个getDataTable的方法,如下:
/** * 响应请求分页数据 */ @SuppressWarnings({ "rawtypes", "unchecked" }) protected TableDataInfo getDataTable(List<?> list) { TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); rspData.setMsg("查询成功"); rspData.setRows(list); rspData.setTotal(new PageInfo(list).getTotal()); return rspData; }
这个方法主要是设置一些返回页面的一些数据,mybtis-plus整合pagehelper主要是接受来自页面的分页参数pageNum和pageSize,然后调用startPage做一个分页设置,最后service直接调用list查出所有的数据,再调用getDataTable这个方法,传入查询结果就可以