SSM框架使用PageHelper插件

    科技2022-07-10  108

    使用PageHelper插件

    导入依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> </dependency> 在mybatis配置文件下的SqlSessionFactoryBean配置插件 <!-- 配置SqlSessionFactoryBean整合MyBatis --> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 指定MyBatis全局配置文件位置 --> <property name="configLocation" value="classpath:mybatis-config.xml"/> <!-- 指定Mapper.xml配置文件位置 --> <property name="mapperLocations" value="classpath:mybatis/mapper/*Mapper.xml"/> <!-- 装配数据源 --> <property name="dataSource" ref="dataSource"/> <!--配置插件--> <property name="plugins"> <array> <!-- 配置PageHelper插件 --> <bean class="com.github.pagehelper.PageHelper"> <property name="properties"> <props> <!--配置数据库方言,告诉PageHelper当前使用的数据库--> <prop key="dialect">mysql</prop> <!-- 配置页码的合理化修正,在1~总页数间修正页码 --> <prop key="reasonable">true</prop> </props> </property> </bean> </array> </property> </bean>

    使用PageInfo进行数据封装

    public PageInfo<Admin> getPageInfo(String keyword, Integer pageNum, Integer pageSize) { // 1.调用PageHelper的静态方法开启分页 PageHelper.startPage(pageNum,pageSize); // 2.执行查询 List<Admin> adminList = adminMapper.selectAdminByKeyword(keyword); // 3.封装到PageInfo对象 return new PageInfo<>(adminList); }

    测试

    public class AdminServiceImplTest { @Autowired AdminService adminService; private Gson gson = new GsonBuilder().setPrettyPrinting().create(); @Test public void getPageInfo() { PageInfo<Admin> pageInfo = this.adminService.getPageInfo("tom", 1, 5); Logger logger = LoggerFactory.getLogger(AdminServiceImplTest.class); //以json格式输出方便查看 logger.info("result = {}", this.gson.toJson(pageInfo)); } }

    输出结果

    [result = { "pageNum": 1, "pageSize": 5, "size": 5, "startRow": 1, "endRow": 5, "total": 16, "pages": 4, "list": [ { "id": 9, "loginAcct": "marry", "userPswd": "4297f44b13955235245b2497399d7a93", "userName": "迈瑞", "email": "marry@qq.com", "createTime": "2020-10-03 16:05:13.0" }, { "id": 10, "loginAcct": "marry1", "userPswd": "4297f44b13955235245b2497399d7a93", "userName": "迈瑞", "email": "marry1@qq.com", "createTime": "2020-10-03 16:05:13.0" }, { "id": 11, "loginAcct": "marry2", "userPswd": "4297f44b13955235245b2497399d7a93", "userName": "迈瑞", "email": "marry2@qq.com", "createTime": "2020-10-03 16:05:37.0" }, { "id": 12, "loginAcct": "marry3", "userPswd": "4297f44b13955235245b2497399d7a93", "userName": "迈瑞", "email": "marry3@qq.com", "createTime": "2020-10-03 16:05:37.0" }, { "id": 13, "loginAcct": "marry4", "userPswd": "4297f44b13955235245b2497399d7a93", "userName": "迈瑞", "email": "marry4@qq.com", "createTime": "2020-10-03 16:05:37.0" } ], "firstPage": 1, "prePage": 0, "nextPage": 2, "lastPage": 4, "isFirstPage": true, "isLastPage": false, "hasPreviousPage": false, "hasNextPage": true, "navigatePages": 8, "navigatepageNums": [ 1, 2, 3, 4 ] }]
    Processed: 0.045, SQL: 8