一、Pageresult用法
Pageresult是一款基于mybatis和springmvc的分页插件,便于在应用程序中使用分页,使开发者无需编写繁琐的分页代码。首先,我们需要在POM文件中添加Pageresult的依赖:
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>最新版本</version> </dependency>
然后在Mapper.xml中添加分页插件配置:
<plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <!--这里的属性通过set方法注入--> <property name="helperDialect" value="mysql"/> <property name="reasonable" value="true"/> <property name="supportMethodsArguments" value="true"/> <property name="params" value="pageNum=pageNumKey;pageSize=pageSizeKey;"/> </plugin> </plugins>
在进行分页查询时,需要在service层中使用PageHelper.startPage方法启用分页,如:
PageHelper.startPage(pageNum,pageSize); List<User> userList = userDao.getUserList(); return new Pageresult<>(userList);
其中,pageNum为页码,pageSize为每页记录数,userDao为自动装配的UserDao,getUserList为查询数据的方法名。
二、Pageresult和PageHelper
Pageresult是基于PageHelper的分页插件,两者都提供了分页的功能。但是,Pageresult可以返回更多的分页信息,如总页数、总记录数、当前页码等。
而且,PageHelper需要手动在Mapper.xml中编写自定义查询语句,而Pageresult则可以直接应用于查询方法中,避免了重复编写分页代码的烦恼。
三、Pageresult取出
Pageresult取出数据可以使用List方法获取当前页的数据,示例如下:
Pageresult<> pageresult = new Pageresult<>(userList); List<User> listCurrentUser = pageresult.getList();
此外,Pageresult还具有很多其他方法,如getPageNum(获取当前页码)、getPageSize(获取每页记录数)、getTotal(获取总记录数)等等,可以帮助开发者更方便地使用分页。
四、Pageresult
的返回值怎么填
Pageresult
public interface UserDao { List<User> getUserList(); }
将该方法修改为返回Pageresult,示例如下:
public interface UserDao { Pageresult<User> getUserList(); }
此时,在service层中,需要使用Pageresult进行处理:
PageHelper.startPage(pageNum,pageSize); Pageresult<User> pageresult = userDao.getUserList(); return pageresult;
这样,开发者就可以方便地获取分页相关的信息,进行分页处理。
五、Pageresult在前端页面的展示
Pageresult返回的分页信息可以方便地用于前端页面的展示。常见的展示方式有两种:
1、使用分页插件展示,如jQuery中的pagination分页插件:
$(document).ready(function () { $("#pagination").pagination({ pageSize: pageSize, total: total, pageCount: totalPages, current: pageNum, prevCls: 'prev', nextCls: 'next', activeCls: 'active', layout: ['prev', 'page', 'next', 'limit', 'refresh', 'skip'], callback: function (pageNum) { $("#loading").show(); $("#content").html(''); $.post('xxx/user/list', { pageNum: pageNum, pageSize: pageSize }, function (result) { $("#loading").hide(); $.each(result.data, function (index, item) { var tr = "<tr><td>" + item.id + "</td><td>" + item.name + "</td></tr>"; $("#content").append(tr); }); }); } }); });
2、使用手写分页展示,例如在页面上展示页码和当前页码:
<div> <% if(currentPage>=1) {%> <a href="/user/list?pageNum=1">First</a> <% } %> <% if(currentPage>1) {%> <a href="/user/list?pageNum=<%=currentPage-1%>">Prev</a> <% } %> <% if(currentPage<totalPages) {%> <a href="/user/list?pageNum=<%=currentPage+1%>">Next</a> <% } %> <% if(currentPage<totalPages) {%> <a href="/user/list?pageNum=<%=totalPages%>">Last</a> <% } %> </div>
六、总结
Pageresult作为一款方便、易用的分页插件,不仅可以提供分页功能,还可以返回更多的分页信息,方便开发者进行分页处理。在实际项目中,可以结合jQuery等前端插件,实现更好的分页效果。