SSM框架三分钟搞定分页查询
使用的国产第三方jar pagehelper
里面的基本属性值
//当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 private int size; //由于startRow和endRow不常用,这里说个具体的用法 //可以在页面中"显示startRow到endRow 共size条数据" //当前页面第一个元素在数据库中的行号 private int startRow; //当前页面最后一个元素在数据库中的行号 private int endRow; //总记录数 private long total; //总页数 private int pages; //结果集 private List<T> list; //前一页 private int prePage; //下一页 private int nextPage; //是否为第一页 private boolean isFirstPage = false; //是否为最后一页 private boolean isLastPage = false; //是否有前一页 private boolean hasPreviousPage = false; //是否有下一页 private boolean hasNextPage = false; //导航页码数 private int navigatePages; //所有导航页号 private int[] navigatepageNums; //导航条上的第一页 private int navigateFirstPage; //导航条上的最后一页 private int navigateLastPage;
1.首先在mybatis配置文件中配置把 对象交给容器处理
<!-- 把交给IOC管理 SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!-- 传入PageHelper的插件 用于分页查询 --> <property name="plugins"> <array> <!-- 传入插件的对象 --> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <props> <prop key="helperDialect">oracle</prop> <prop key="reasonable">true</prop> </props> </property> </bean> </array> </property> </bean>
2.页面 这里我使用的jsp把页码的参数设置一下
<%--page=1&size=4 分页查询--%>
href="${pageContext.request.contextPath}/orders/findAll.do?page=1&size=4">
3. web层 把你设置的 开始页码1,每页显示条数4 以参数形式传递给方法(部分代码) 注意int 改为integer 要不然容易报错!!!!
/*name=请求参数名(必须配置) * required = 是否必需,默认为 true,即 请求中必须包含该参数,如果没有包含,将会抛出异常(可选配置) * defaultValue= 参数的默认值 * */ public ModelAndView findAll(@RequestParam(name = "page",required = true,defaultValue = "1") int page,@RequestParam(name = "size",required = true,defaultValue = "4") int size){ ModelAndView mv=new ModelAndView(); List<Orders> orders = service.findAll(page,size); //PageInfo就是分页的bean PageInfo pageInfo=new PageInfo(orders); mv.addObject("pageInfo",pageInfo); mv.setViewName("orders-page-list"); return mv; }
4.修改前端展示页面的 数据,因为你查询的数据被封装到了对象pageInfo的 list中
<c:forEach items="${pageInfo.list}" var="orders">
5.在service层 dao方法加上以下
//使用了 第三方的分页依赖, 哪个方法分页在上面写上一下语句 PageHelper.startPage(page,size);
http://git.oschina.net/free/Mybatis_PageHelper jar下载地址