文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JavaWeb分页查询功能怎么实现

2023-06-26 09:19

关注

本篇内容主要讲解“JavaWeb分页查询功能怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaWeb分页查询功能怎么实现”吧!

效果:

JavaWeb分页查询功能怎么实现

实现:

分页查询有几个比较重要的参数,pageNum当前的页数,pageSize每页所展示的数据,totalRecord总共有多少数据,其他的数据可以根据这三个数据得出,有了这几个数据就可以分页查询了

public class Page {    //当前的页数    private int pageNum;    //每页所展示的数据    private int pageSize;    //总共有多少数据    private int totalRecord;    //总页数    private int totalPage;    //查询数据的起始位置    private int startIndex;    //存放查询到的数据    private List<Book> booklist;    //相对的头页    private int start;    //相对的尾页    private int end;     public Page(int pageNum, int pageSize, int totalRecord) {        this.pageNum = pageNum;        this.pageSize = pageSize;        this.totalRecord = totalRecord;         if(totalRecord%pageSize == 0){            //如果刚好能够整除,则totalPage = totalRecord/pageSize            this.totalPage = totalRecord/pageSize;        }else{            //如歌不能整除,则需要多加一页显示余下的数据            this.totalPage = (totalRecord/pageSize)+1;        }        this.startIndex = (pageNum-1)*pageSize;        //初始头页        this.start = 1;        //初始尾页        this.end = 5;        if(totalPage<5){            //如果总页数小于5页,则尾页为总页数            this.end = this.totalPage;        }else{            this.start = this.pageNum-2;            this.end = this.pageNum+2;            if(this.start<0){                this.start = 1;                this.end = 5;            }            if(this.end>totalPage){                this.end = totalPage;                this.start = this.end-5;            }        }    }     //下面的为get/set方法    public int getPageNum() {        return pageNum;    }     public void setPageNum(int pageNum) {        this.pageNum = pageNum;    }     public int getPageSize() {        return pageSize;    }     public void setPageSize(int pageSize) {        this.pageSize = pageSize;    }     public int getTotalRecord() {        return totalRecord;    }     public void setTotalRecord(int totalRecord) {        this.totalRecord = totalRecord;    }     public int getTotalPage() {        return totalPage;    }     public void setTotalPage(int totalPage) {        this.totalPage = totalPage;    }     public int getStartIndex() {        return startIndex;    }    public void setStartIndex(int startIndex) {        this.startIndex = startIndex;    }     public List<Book> getBooklist() {        return booklist;    }     public void setBooklist(List<Book> booklist) {        this.booklist = booklist;    }     public int getStart() {        return start;    }     public void setStart(int start) {        this.start = start;    }     public int getEnd() {        return end;    }     public void setEnd(int end) {        this.end = end;    }}

pageNum从请求中获得,pageSize自己设置,totalRecord通过mybatis查询获得,一开始登录的时候请求中没有pageNum,所以进行一个判断,如果没有pageNum则赋值为1

 //pageNum  String pageNum = request.getParameter("pageNum") == null?"1":request.getParameter("pageNum");//pageSize    int pageSize = 7;//totalRecordint totalRecord = bookMapper.BookSize();//mybatis<select id="BookSize" resultType="int">        select count(*) from book </select>

有了pageNum和startIndex就可以查询到特定范围的数据,通过使用mysql中的limit函数,limit有两个参数,第一个参数为起始位置,即从那开始查,第二个参数为查询范围,即查多少个,如 limit 14,7 为从第14个数据开始往后查七个。

<select id="Books" parameterType="java.util.Map" resultType="book">        select *from book  limit #{startIndex},#{pageSize}    </select>
public static Page getPageUser(int pageNum,int pageSize){        SqlSession sqlSession = GetSqlSession.getSqlSession();        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);        int totalRecord = bookMapper.BookSize();         Page page = new Page(pageNum,pageSize ,totalRecord );        int startIndex = page.getStartIndex();        Map<String,Integer> map = new HashMap<>();        map.put("startIndex",startIndex );        map.put("pageSize",pageSize );        page.setBooklist(bookMapper.Books(map));        return page;    }

jsp页面:

<a href="index?pageNum=1">首页</a>            <%--当前页数为第一页--%>        <c:if test="${sessionScope.page.pageNum == 1}">            <c:forEach begin="${sessionScope.page.start}" end="${sessionScope.page.end}" step="1" var="i">                <c:if test="${sessionScope.page.pageNum == i}">                    <span  style="color: deeppink">${i}</span>                </c:if>                <c:if test="${sessionScope.page.pageNum != i}">                    <a href="index?pageNum=${i}">${i}</a>                </c:if>            </c:forEach>            <a href="index?pageNum=${sessionScope.page.pageNum+1}">下一页</a>        </c:if>        <%--当前页数为中间页数--%>        <c:if test="${sessionScope.page.pageNum >1 && sessionScope.page.pageNum<sessionScope.page.totalPage}">            <a href="index?pageNum=${sessionScope.page.pageNum-1}">上一页</a>            <c:forEach begin="${sessionScope.page.start}" end="${sessionScope.page.end}" step="1" var="i">                <c:if test="${sessionScope.page.pageNum == i}">                    <span  style="color: deeppink">${i}</span>                </c:if>                <c:if test="${sessionScope.page.pageNum != i}">                    <a href="index?pageNum=${i}">${i}</a>                </c:if>            </c:forEach>            <a href="index?pageNum=${sessionScope.page.pageNum+1}">下一页</a>        </c:if>        <%--当前页数为最后一页--%>        <c:if test="${sessionScope.page.pageNum == sessionScope.page.totalPage}">            <a href="index?pageNum=${sessionScope.page.pageNum-1}">上一页</a>            <c:forEach begin="${sessionScope.page.start}" end="${sessionScope.page.end}" step="1" var="i">                <c:if test="${sessionScope.page.pageNum == i}">                    <span  style="color: deeppink">${i}</span>                </c:if>                <c:if test="${sessionScope.page.pageNum != i}">                    <a href="index?pageNum=${i}">${i}</a>                </c:if>            </c:forEach>        </c:if>        <a href="index?pageNum=${sessionScope.page.totalPage}">尾页</a>

到此,相信大家对“JavaWeb分页查询功能怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯