• 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;
    View Code

    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>
    View Code

    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;
        }
    View Code

    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下载地址

     

  • 相关阅读:
    Educational Codeforces Round 22 C. The Tag Game
    Codeforces Round #421 (Div. 1) B. Mister B and PR Shifts(技巧)
    Codeforces Round #422 (Div. 2) D. My pretty girl Noora
    Codeforces Round #422 (Div. 2) C. Hacker, pack your bags!
    hdu3756(三分)
    hihocoder1496(高维前缀和)
    AOJ731(不等式)
    UVALive7042(博弈论)
    Codeforces 284E(概率)
    hdu4778(状态压缩dp)
  • 原文地址:https://www.cnblogs.com/july7/p/11953797.html
Copyright © 2020-2023  润新知