String-boot + mybatis +pagehelper 使用分页

最近自己搭建一个spring-boot 的项目听说最近很是流行,之前在一件公司用的觉得挺不错.所以自己配置一下学习学习.结果做到分页的时候看到了pagehelper 貌似是个很牛的插件所以用来学习一下,结果两天都没怎么弄明白,网上查了好多资料.但好像没有看到代码很全的,让我这个小白彻底看懂的(自己愚笨) ,所以今天终于成功了. 特地写出来争取写的详细一点 ,照着做就能一下成功的.供给和我一样还在茫然的伙伴提示一下,给自己也提个醒.写的不好还请各路英雄豪杰多多指教

废话不多说
工具:eclipse jdk 1.7
环境: windows 7 tomcat 7.0
然后, spring-boot + mybatis +thymeleaf +maven,数据库mysql

首先pom.xml 的pagehelper 引入 我这里用的是 4.1.0的版本 现在最新的应该是5.1.4 而且会有一些差异 jsqlparser 也需要一同引入 4.1.0及以后版本需要0.9.4版本 以下 0.9.1版

pom.xml
String-boot + mybatis +pagehelper  使用分页

然后我的配置文件的路径结构 config 文件夹下是 spring-boot 的application 和mybatis 的配置xml,mapper 是mybatis 的mapper 查询语句文件 查询的sql 都写在对应的xml 里.static 下引入的css js等,templates 是thymeleaf的模板文件,也就是html

String-boot + mybatis +pagehelper  使用分页

spring-boot 和mybatis的应用的配置 , spring和mybatis配置文件应用方式有好几种,我是用的application.yml和mybatis.xml 的配置方式 . 也有 application.properties和mybatis-config.xml的.

application.yml 配置mybatis 的mapper 路径和配置文件路径,不能写错,pagehelper 是可以不用写的 具体配置实在mybatis.xml 里面
String-boot + mybatis +pagehelper  使用分页

mybatis.xml 这里面就是pagehelper 的配置 当然还有其他的属性
String-boot + mybatis +pagehelper  使用分页

基本上配置类文件是这些
接下来
Controller 方法里我并没有传参数,实际应用中需要条件查询会传一些参数的,但是这里不用传输分页的任何参数 pagehelper .startPage (当前页,当前页记录) 就足以 是不是很简单.这个可以写在controller 里或者实现层里,我这几行代码也是网上粘的,但是忘记在哪个网站上粘的了.

String-boot + mybatis +pagehelper  使用分页

service
String-boot + mybatis +pagehelper  使用分页

serviceimpl
String-boot + mybatis +pagehelper  使用分页

dao
String-boot + mybatis +pagehelper  使用分页

bean
String-boot + mybatis +pagehelper  使用分页

MenDao.xml sql的语句写在了这里.返回的是对象类型的集合
String-boot + mybatis +pagehelper  使用分页

页面 因为我用的是thymeleaf模板引擎 就是 html.但功能很强大.

table表格
String-boot + mybatis +pagehelper  使用分页

分页的代码我就直接粘出来吧
方便使用

<div class="container">
        <div style="margin-top: 10px;">
                <ul id="page" class="pagination">
                    <div class = "aad"> 当前第<span th:text="${pageInfo.pageNum} "></span>页.每页条数:<span th:text="${pageInfo.pageSize}"></span> 
                    一共 <span th:text="${pageInfo.total}"></span> 条记录</div>
                    <li >
                        <a th:href="@{'/menu/getMenu?pageNum='+${pageInfo.firstPage}}" >首页</a>
                    </li>
                     <!--上一页-->
                     <li  th:if="${pageInfo.hasPreviousPage}">
                         <a  th:href="@{'/menu/getMenu?pageNum='+${pageInfo.prePage}}"  >
                          <i class="fa fa-angle-left"></i>&nbsp;上一页
                        </a>
                      </li>
                    <!--循环遍历连续显示的页面,若是当前页就高亮显示,并且没有链接-->
                    <th:block th:each="nav : ${pageInfo.navigatepageNums}" >
                        <li  th:class="${nav==pageInfo.pageNum}?'active':''" >
                        <a th:href="@{'/menu/getMenu?pageNum='+${nav}}"
                            th:text="${nav}"></a></li>
                    </th:block>
                    
                    <th:block th:if="${pageInfo.hasNextPage}">
                        <li>
                            <a th:href="@{'/menu/getMenu?pageNum='+${pageInfo.nextPage}}" > 下一页&nbsp;<i class="fa fa-angle-right"></i>
                            </a>
                        </li>
                    </th:block>
                    <li>
                        <a th:href="@{'/menu/getMenu?pageNum='+${pageInfo.lastPage}}">尾页</a>
                    </li>
                </ul>
        </div>
    </div>

最终页面显示的样子,简单调了一下样式.
String-boot + mybatis +pagehelper  使用分页

基本上就这些了,之后我还要加上页面输入页码跳转的功能. 我也是刚开始学习这个东西很多也是在摸索中,高手略过,哈哈哈

相关推荐