ssm+pageHelper插件实现分页

分页的实现方式

1、内存实现:从数据库中查询所有的记录,然后在jvm中获取页面

2、数据库实现:使用limit获取查询的页面记录,pageHelper也是使用这种方式实现分页

分页项目搭建步骤:

1、构建mysql数据库

2、搭建ssm框架

3、创建实体类

4、根据项目需求创建mapper(dao)

查询所有数据:

List<User>   findAllUser();

5、根据mapper创建映射文件,然后配置mapper.xml

<select id="findAllUser" resultType="User">
    select *  from  user
</select>

6、在service层中使用插件实现分页:

(1)导入依赖

在pom.xml中导入pageHelper依赖

<!-- pageHelper依赖 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.10</version>
        </dependency>

(2)配置插件

在mybatis配置文件mybatisConf.xml中配置映射信息:

    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
	
            <property name="helperDialect" value="mysql"/>
<!--            如果pageSize为0,不分页-->
            <property name="pageSizeZero" value="true"/>
        </plugin>
    </plugins>

若在整合后不使用mybatis配置文件,

在spring配置文件中使用:

 <bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory">
        <property name="dataSource" ref="dataSource"/>
        <!-- 传入PageHelper的插件 -->
        <property name="plugins">
            <array>
                <!-- 传入插件的对象 -->
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <props>
                            <prop key="helperDialect">mysql</prop>
                            <prop key="reasonable">true</prop>
                        </props>
                    </property>
                </bean>
            </array>
        </property>
    </bean>

(3)使用插件

在查询所有数据前使用 PageHelper.startPage(pageNum,pageSize);

pageNum是第几页,pageSize指这一页有多少行记录

数据库操作对象执行的sql语句为

select * from user limit pageNum , pageSize

接着使用mapper中查询语句查询;

将返回的结果传给com.github.pagehelper.PageInfo对象

 @Override
    public PageInfo pageInfoService(int pageNum, int pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        List<Users> allUsersMapper = usersMapper.findAllUsersMapper();
        com.github.pagehelper.PageInfo pageInfo= new com.github.pagehelper.PageInfo<>			(allUsersMapper);
        return pageInfo;
    }

当然写在Controller里更简单

7、@Controller层返回pageInfo对象

    @RequestMapping("/pageInfo")
    public  PageInfo pageInfo(String pageNum){
        int pagenum = Integer.parseInt(pageNum);
        int pagesize=2;
        PageInfo pageInfo = userService.pageInfoService(pagenum, pagesize);
        return  pageInfo;
    }

8、jsp使用对象创建页面

<div align="center">
    <table >
        <tr>
            <td>编号</td>
            <td>卡号</td>
            <td>姓名</td>
            <td>性别</td>
            <td>电话</td>
            <td>开户日期</td>
            <td>余额</td>
        </tr>
        <c:forEach items="${pageInfo.list}" var="r">
            <tr>
                <td>${r.uid}</td>
                <td>${r.unum}</td>
                <td>${r.uname}</td>
                <td>${r.usex}</td>
                <td>${r.utel}</td>
                <td>${r.utime}</td>
                <td>${r.ubalance}</td>
            </tr>
        </c:forEach>
    </table>
    <br/>
    <br/>
    <a href="/pageInfo?pageNum=1">首页</a>
    <a href="/pageInfo?pageNum=${pageInfo.prePage==0?1:pageInfo.prePage}">上一页</a>
    <a href="/pageInfo?pageNum=${pageInfo.pageNum==pageInfo.pages?pageInfo.pages:pageInfo.nextPage}">下一页</a>
    <a href="/pageInfo?pageNum=${pageInfo.pages}">尾页</a>
    <br/>

    <br/>
    当前是第${pageInfo.pageNum}页,共${pageInfo.pages}页。
    每页${pageInfo.pageSize}条,共${pageInfo.total}条记录。
    <br/>
</div>
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值