pageHelper

pagehelper分页插件使用

1.导入依赖

<!-- MyBatis分页插件 -->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper</artifactId>
		</dependency>

2.在Spring整合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>
				<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>
	

3.在mybatis查询语句配置文件中配置查询语句

<!--分页语句-->
  <select id="selectAdminByKeyword" resultMap="BaseResultMap">
    select id,login_acct,user_pswd,user_name,email,create_time
    from t_admin
    where login_acct like concat("%",#{keyword},"%")
     or user_name like concat("%",#{keyword},"%")
     or email like concat ("%",#{keyword},"%")
  </select>

4.在dao接口中添加该查询方法

 List<Admin>selectAdminByKeyword(String keyword);

5.service层接口方法

 PageInfo<Admin> getPageInfo(String keyword,Integer pageNum,Integer pageSize);

6.service实现类

@Override
	public PageInfo<Admin> getPageInfo(String keyword, Integer pageNum, Integer pageSize) {
		//1.调用PageHelper的静态方法开启分页功能
		PageHelper.startPage(pageNum,pageSize);

		//2.执行查询
		List<Admin> list = adminMapper.selectAdminByKeyword(keyword);

		//3.封装到PageInfo对象中
		return new PageInfo<>(list);
	}

7.controller层

  @RequestMapping("/admin/get/page.html")
    public String getPageInfo(
            //使用defaultValue默认属性,当请求中没有对应参数时,使用默认值
            //keyword默认值使用空字符串,和sql语句配饰实现两种情况适配
            @RequestParam(value = "keyword",defaultValue = "") String keyword,
            //默认查询到第一页
            @RequestParam(value = "pageNum",defaultValue = "1") Integer pageNum,
            //默认一页五条
            @RequestParam(value = "pageSize",defaultValue = "5") Integer pageSize,
            ModelMap modelMap){
         //ModelMap是一个接口实现 ,作用是将Model数据填充到request域
        //调用service方法获取PageInfo对象
        PageInfo<Admin> pageInfo = adminService.getPageInfo(keyword, pageNum, pageSize);
        //将PageInfo对象存入模型
        modelMap.addAttribute(CrowdConstant.ATTR_NAME_PAGE_INFO,pageInfo);
        return "admin-page";
    }

8.当把pageInfo对象存入模型后,也就是此时request域中有了对应的分页信息
在前端页面可以通过el,jstl表达式获取到对应的值

<c:if test="${!empty requestScope.pageInfo.list}">
      <c:forEach items="${requestScope.pageInfo.list}" var="admin" varStatus="myStatus">
          <tr>
                    <%--循环计数从1开始--%>
                    <td>${myStatus.count}</td>
                    <td><input type="checkbox"></td>
                    <td>${admin.loginAcct}</td>
                    <td>${admin.userName}</td>
                    <td>${admin.email}</td>
                    <td>
                        <button type="button" class="btn btn-success btn-xs"><i
                                class=" glyphicon glyphicon-check"></i></button>
                        <button type="button" class="btn btn-primary btn-xs"><i
                                class=" glyphicon glyphicon-pencil"></i></button>
                        <button type="button" class="btn btn-danger btn-xs"><i
                                class=" glyphicon glyphicon-remove"></i></button>
                    </td>
           </tr>
       </c:forEach>       
</c:if>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值