zoukankan      html  css  js  c++  java
  • mybatis框架中分页的实现

    2.分页的实现?

    分页的时候考虑的问题:

    分页的大小,分页的索引。

    比如:分页的大小为10,分页的起始索引为1(索引从1开始)

    第一页:110.    起始行号: (页的索引-1*分页大小+1

                       结束行号: 页的索引*分页大小

    实现方案:

    1)比如针对UserInfo的实体对象做分页处理,那么先创建一个分页的实体类,该类继承自UserInfo

    package com.gxa.bj.model;

    public class UserInfoPage extends UserInfo{

    // 分页的索引

    private int pageIndex;

    // 分页的大小

    private int pageSize;

    // 分页的起始行

    private int startNum;

    // 分页的结束行

    private int endNum;

    public int getPageIndex() {

    return pageIndex;

    }

    public void setPageIndex(int pageIndex) {

    this.pageIndex = pageIndex;

    }

    public int getPageSize() {

    return pageSize;

    }

    public void setPageSize(int pageSize) {

    this.pageSize = pageSize;

    }

        public int getStartNum() {

    return startNum;

    }

    public void setStartNum(int startNum) {

    this.startNum = startNum;

    }

    public int getEndNum() {

    return endNum;

    }

    public void setEndNum(int endNum) {

    this.endNum = endNum;

    }

        

    }

    2)在接口中定义一个方法,

      public List<UserInfo> getListByPage(UserInfoPage upage);

    3)在Mapper文件中编写SQL语句:

    <select id="getListByPage" parameterType="com.gxa.bj.model.UserInfoPage"  resultType="com.gxa.bj.model.UserInfo">

        

        Select u.*

        From (Select rownum as num, userinfo.*

              from userinfo

              <where>

               <if test="userName!=null">

                And userName like #{userName}

            </if>

            <if test="userId>0">

                And userId =#{userId}

            </if>

            <if test="userPwd!=null and userPwd !='' ">

                And userPwd like #{userPwd}

            </if>

            </where>

              ) u Where u.num between  #{startNum} and #{endNum}

      

       </select>

    4)编写相应的测试代码:

    UserInfoPage u= new UserInfoPage();

    //     

          u.setUserName("zhangsan");

          u.setPageIndex(2);

          u.setPageSize(2);

          int startNum = (u.getPageIndex()-1)*u.getPageSize()+1;

          int endNum = u.getPageIndex()*u.getPageSize();

          u.setStartNum(startNum);

          u.setEndNum(endNum);

         

         List<UserInfo> list = userMapper.getListByPage(u);

         for(UserInfo t :list){

         System.out.println("id:"+t.getUserId());

         }

  • 相关阅读:
    Map集合的四种遍历
    java 请求 google translate
    Linux 内核初级管理
    Linux GRUB
    Linux 系统启动流程
    Linux 任务计划 crontab
    Linux 进程管理工具
    Linux sudo实作
    Linux 进程管理
    Linux 网络配置命令:ip、ss
  • 原文地址:https://www.cnblogs.com/hyj-zy/p/5648891.html
Copyright © 2011-2022 走看看