SSM框架使用PageHelper插件

使用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
  ]
}]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM框架中,可以使用PageHelper插件来实现分页功能。首先,在pom.xml文件中导入PageHelper的依赖,如下所示: ``` <!-- pageHelper依赖 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.10</version> </dependency> ``` 接下来,在需要进行分页的service方法中,使用PageHelper.startPage(pageNum, pageSize)来指定当前页码和每页显示的数据条数,如下所示: ```java @Override public PageInfo pageInfoService(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); List<Users> allUsersMapper = usersMapper.findAllUsersMapper(); PageInfo pageInfo = new PageInfo<>(allUsersMapper); return pageInfo; } ``` 这样就可以在查询所有数据之前启动分页功能了。PageHelper会自动拦截后续的查询操作,并根据指定的页码和每页显示的数据条数进行分页查询。最后,将查询结果传给com.github.pagehelper.PageInfo对象,该对象会自动计算总页数、总记录数等信息,并返回给前端进行展示。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ssm+pageHelper插件实现分页](https://blog.csdn.net/a2240386260/article/details/120922947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值