当前位置: 代码迷 >> 综合 >> PageHelper 插件
  详细解决方案

PageHelper 插件

热度:17   发布时间:2023-12-24 03:47:43.0

 PageHelper  需要的maven坐标

        <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version></dependency>

applicationContext.xml   (spring.xml ) 配置    在 SqlSessionFactoryBean 标签内 配置

    <bean id="sqlSessionFactoryBean" 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.在Service中 只需要    page szie   需要前端传过来

@Service
@Transactional
public class OrdersServiceImpl implements IOrdersService {@Autowiredprivate IOrdersDao iOrdersDao;@Overridepublic List<Orders> findAll(int page, int size) {PageHelper.startPage(page,size);   必须在findAll方法前return iOrdersDao.findAll();
}}

 3.Controller中

@Controller
@RequestMapping("/orders")
public class OrderController {@Autowiredprivate IOrdersService iorderService;@RequestMapping("/findAll.do")public ModelAndView findAll(@RequestParam(name = "page",required = true,defaultValue = "1") int page,@RequestParam(name = "size",required = true,defaultValue = "4") int size){List<Orders> orders = iorderService.findAll(page,size);PageInfo pageInfo = new PageInfo(orders);ModelAndView mv = new ModelAndView();mv.addObject("pageInfo",pageInfo);mv.setViewName("orders-page-list");return mv;
}
}

    PageInfo 是有page helper 提供的类  将数据库中查询封装 的 orders  domain 直接传入构造方法 

     在前端 直接 pageInfo.list 取出orders 数据     其中pageInfo还有 当前页  总页数等信息

4.前端配置


<div class="box-tools pull-right"><ul class="pagination"><li><a href="${pageContext.request.contextPath}/orders/findAll.do?page=1&size${pageInfo.pageSize}" aria-label="Previous">首页</a></li><li><a href="${pageContext.request.contextPath}/orders/findAll.do?page=${pageInfo.pageNum-1}&size${pageInfo.pageSize}">上一页</a></li><c:forEach begin="1" end="${pageInfo.pages}" var="pageNum"><li><a href="${pageContext.request.contextPath}/orders/findAll.do?page=${pageNum}&size${pageInfo.pageSize}">${pageNum}</a></li></c:forEach><li><a href="${pageContext.request.contextPath}/orders/findAll.do?page=${pageInfo.pageNum+1}&size${pageInfo.pageSize}">下一页</a></li><li><a href="${pageContext.request.contextPath}/orders/findAll.do?page=${pageInfo.pages}&size${pageInfo.pageSize}" aria-label="Next">尾页</a></li></ul>
</div>