spring boot 使用pagehelper对mybatis分页

pagehelper

https://pagehelper.github.io/docs/howtouse/

https://github.com/pagehelper/Mybatis-PageHelper

 

按照说明再bom.xml添加依赖

<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>1.2.13</version>
		</dependency>

 

dao层

public List<Feedback> getPageList(Map<String, Object> conditions);

dao层xml

<select id="getPageList" parameterType="Map" resultType="Feedback">
        SELECT
        <include refid="ColumnList"/>
        FROM feedback
        <where>
            <if test="title != null and title !=''">
                `title` LIKE #{title}
            </if>
            <if test="name != null and name !=''">
                AND `name` LIKE #{name}
            </if>
        </where>
        ORDER BY `id` DESC
    </select>

 

 

service层

public List<Feedback> getPageList(Map<String, Object> conditions) {
        if (conditions.size() > 0) {
            for(Map.Entry<String, Object> condition : conditions.entrySet()) {
                if (condition.getValue() != null) {
                    if (condition.getKey().equals("title") || condition.getKey().equals("name")) {
                        condition.setValue("%" + condition.getValue() + "%");
                    }
                }
            }
        }
        return feedbackDao.getPageList(conditions);
    }

 

congroller层

 String page = request.getParameter("page");
        Integer pageNum = page == null ? 1: Integer.valueOf(page);
        // 处理name和title
        String title = request.getParameter("title");
        String name = request.getParameter("name");
        Map<String, Object> conditions = new HashMap<String, Object>();
        conditions.put("title", title);
        conditions.put("name", name);

        PageHelper.startPage(pageNum, 2);
        List<Feedback> feedbacks = feedbackService.getPageList(conditions);
        PageInfo pageInfo = new PageInfo(feedbacks);


        model.addAttribute("list", feedbacks);
        model.addAttribute("pageInfo", pageInfo);

这里只需要使用

PageHelper.startPage(pageNum, 2);

就可以获得分页效果。

同时使用

PageInfo pageInfo = new PageInfo(feedbacks);

获得分页参数。

PageInfo跟文档里面的有出入,具体参考

https://apidoc.gitee.com/free/Mybatis_PageHelper/

 

html

<div class="layui-box layui-laypage layui-laypage-default" id="layui-laypage-10">
                <span class="layui-laypage-count">共 [[${pageInfo.getPages()}]] 页 [[${pageInfo.getTotal()}]] 条</span>
                <a href="404.html" th:href="@{/backend/feedback/index(title = ${#request.getParameter('title')}, name = ${#request.getParameter('name')})}" class="layui-laypage-first">首页</a>
                <a href="404.html" th:if="${pageInfo.isHasPreviousPage()}" th:href="@{/backend/feedback/index(page = ${pageInfo.getPrePage()}, title = ${#request.getParameter('title')}, name = ${#request.getParameter('name')})}" class="layui-laypage-prev">上一页</a>
                <a href="404.html" th:each="page : ${pageInfo.getNavigatepageNums()}" th:href="@{/backend/feedback/index(page = ${page}, title = ${#request.getParameter('title')}, name = ${#request.getParameter('name')})}" th:class="${page eq pageInfo.getPageNum()}? 'my-laypage-curr'">[[${page}]]</a>
                <a href="404.html" th:if="${pageInfo.isHasNextPage()}" th:href="@{/backend/feedback/index(page = ${pageInfo.getNextPage()}, title = ${#request.getParameter('title')}, name = ${#request.getParameter('name')})}" class="layui-laypage-next">下一页</a>
                <a href="404.html" th:href="@{/backend/feedback/index(page = ${pageInfo.getNavigateLastPage()}, title = ${#request.getParameter('title')}, name = ${#request.getParameter('name')})}" class="layui-laypage-last">尾页</a>
            </div>

 

这里的参数还没有找到比较方便的方法,以后深入了解看看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值