iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何使用Mybatis实现分页效果
  • 558
分享到

如何使用Mybatis实现分页效果

2023-06-21 23:06:03 558人浏览 独家记忆
摘要

这篇文章主要介绍如何使用mybatis实现分页效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、创建分页的工具类PageUti,存储分页所需要的五个数据:pageIndex(当前页码),pageSize(每页记录

这篇文章主要介绍如何使用mybatis实现分页效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、创建分页的工具类PageUti,存储分页所需要的五个数据:pageIndex(当前页码),pageSize(每页记录条数),count(总记录数),pageNum(总页数),list(每一页的内容)。

public class PageUtil<T> {    //当前页码    private int pageIndex;    //每页记录数    private int pageSize;    //总记录数    private int count;    //总页数    private int pageNum;    //每一页的内容    private List<T> list;}

二、xml文件:MySQL对分页的支持是通过limit子句。

如:

# 每页10条记录,取第一页,返回的是前10条记录 

select * from books limit (1-1)*10,10;

# 每页10条记录,取第二页,返回的是第11条记录,到第20条记录, 

select * from books limit (2-1)*10,10; 

所以:limit的第一个参数=(当前页码-1)*每页记录数

<!--分页,查询当前页的内容-->    <select id="getBooksPage" resultType="list" parameterType="map">        select * from books limit #{pageIndex},#{pageSize}    </select><!--查询总记录数-->    <select id="getCount" resultType="int" parameterType="map">        select count(*) from books</select>

三、BooksServiceImpl.java:将limit需要的两个参数存入map集合中,再将分页所需要的五个数据封装。

public PageUtil<Books> getBooksPage(int pageIndex, int pageSize) {        PageUtil<Books> pageUtil=new PageUtil<>();        sqlSession sqlSession= MybatisUtil.getSqlSession();        try {            //booksMapper是使用动态代理模式,运行反射机制,创建的一个代理对象            BooksMapper booksMapper=sqlSession.getMapper(BooksMapper.class);            Map map=new HashMap();            int row=booksMapper.getCount(map);            //计算总页数            int pageCount= (int) Math.ceil((double) row / pageSize);            //limit的第一个参数=(当前页码-1)*每页记录数            map.put("pageIndex",(pageIndex - 1) * pageSize);            map.put("pageSize", pageSize);            List<Books> list=booksMapper.getBooksPage(map);            //将数据封装            pageUtil.setPageIndex(pageIndex);            pageUtil.setPageSize(pageSize);            pageUtil.setCount(row);            pageUtil.setPageNum(pageCount);            pageUtil.setList(list);        }catch (Exception e){            e.printStackTrace();        }finally {            sqlSession.close();        }        return pageUtil;    }

四、servlet:

protected void getBooks(httpservletRequest request, HttpServletResponse response) throws ServletException, IOException {        if(request.getParameter("pageIndex")!=null) {            int pageIndex=Integer.parseInt(request.getParameter("pageIndex"));            show(response,pageIndex,search);        }else {            show(response);        }     }
private void show(HttpServletResponse response,Object ...ages) throws IOException {        int pageIndex = 1;//默认第一页        if(ages.length>0){            pageIndex=(int)ages[0];        }        PageUtil pageUtil=new PageUtil();        //每页10条数据        pageUtil=new BooksServiceImpl().getBooksPage(pageIndex,10);        String jsJSON.toJSONString(pageUtil);        PrintWriter pw=response.getWriter();        pw.write(js);    }

五、前段页面

显示分页:

var page = "<li>共" + data.count + "条,共" + data.pageNum + "页,当前第" + data.pageIndex + "页</li>";            page += "<li><a href='#' onclick='myPage(1)'>首页</a></li>";             if (data.pageIndex == 1) {                page += "<li><a href='#' onclick='myPage(1)'>上一页</a></li>";            } else {                page += "<li><a  href='#'  onclick='myPage(" + (data.pageIndex - 1) + ")'>上一页</a></li>";            }            // for (var i = 1; i <= data.pageNum; i++) {            //     page += "<a href='#' onclick='myPage(" + i + ")'>" + i + "</a>"            // }            if (data.pageIndex < data.pageNum) {                page += "<li><a href='#' onclick='myPage(" + (data.pageIndex + 1) + ")'>下一页</a></li>";            } else {                page += "<li><a href='#' onclick='myPage(" + data.pageNum + ")'>下一页</a></li>";            }            page += "<li><a href='#' onclick='myPage(" + data.pageNum + ")'>末页</a></li>";

点击分页(myPage):通过ajax请求将页码传到servlet

function myPage(index) {            console.log(index)            $.getJSON("books/getBooks.do", {"pageIndex": index}, function (data) {                showBooks(data)            });}

六、MybatisUtil.java工具类:向外提供一个方法,可以获取SqlSession对象

public class MybatisUtil {    static SqlSessionFactory sqlSessionFactory;     // 加载主配置文件,并创建 sqlSessionFactory    static {        String resource = "com/xmx/config/mybatis-config.xml";        InputStream inputStream = null;        try {            inputStream = Resources.getResourceAsStream(resource);        } catch (IOException e) {            e.printStackTrace();        }        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);    }         public static SqlSession getSqlSession() {//        return sqlSessionFactory.openSession(true);        return sqlSessionFactory.openSession();    }}

以上是“如何使用Mybatis实现分页效果”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 如何使用Mybatis实现分页效果

本文链接: https://www.lsjlt.com/news/301472.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用Mybatis实现分页效果
    这篇文章主要介绍如何使用Mybatis实现分页效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、创建分页的工具类PageUti,存储分页所需要的五个数据:pageIndex(当前页码),pageSize(每页记录...
    99+
    2023-06-21
  • 使用Mybatis实现分页效果示例
    一、创建分页的工具类PageUti,存储分页所需要的五个数据:pageIndex(当前页码),pageSize(每页记录条数),count(总记录数),pageNum(总页数),li...
    99+
    2022-11-12
  • mybatis分页效果实现代码
    本文为大家分享了mybatis分页效果展示的具体代码,供大家参考,具体内容如下mybatis版本3.4以下结构:spring-mvc.xml<?xml version="1.0" encoding="UTF-8"?&g...
    99+
    2023-05-31
    mybatis 分页 实现代码
  • SpringBoot+Mybatis分页插件PageHelper实现分页效果
    目录一、项目结构二、插件引入三、代码四、测试:        最近刚入职新公司,项目是从零开始搭建的项目。我觉得是时候考验是驴还是千里马的时候...
    99+
    2022-11-12
  • 在mybatis项目中使用oracle如何实现一个分页效果
    在mybatis项目中使用oracle如何实现一个分页效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先当我们需要通过xml格式处理sql语句时,经常会用到< ,&l...
    99+
    2023-05-31
    mybatis oracle 分页
  • 如何实现Ajax分页效果
    这篇文章给大家分享的是有关如何实现Ajax分页效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先创建前台页面MyAjaxPager.aspx 复制代码 代码如下:<%@...
    99+
    2022-10-19
  • 如何实现layui分页效果
    这篇文章主要介绍了如何实现layui分页效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下<!DOCTYPE h...
    99+
    2022-10-19
  • ajax如何实现分页效果
    这篇文章将为大家详细讲解有关ajax如何实现分页效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ajax分页效果图:上干货:  $(function(){&n...
    99+
    2022-10-19
  • MVC使用MvcPager实现分页效果
    本文实例为大家分享了MVC使用MvcPager实现分页效果的具体代码,供大家参考,具体内容如下 一、数据库表 USE [StudentDB] GO   SET ANSI_NULLS...
    99+
    2022-11-13
  • Java使用Queryable-pageable实现分页效果
    在维护老项目的时候需要对部分分页进行手动修改、方式是获取前端的分页参数 page以及rows、 new PageRequest对象把分页参数传进去、通过 ...
    99+
    2022-11-13
  • React实现分页效果
    本文实例为大家分享了React实现分页效果的具体代码,供大家参考,具体内容如下 首先确保已经安装了antd,axios jsx文件: import React, { useSt...
    99+
    2022-11-12
  • MyBatis如何使用PageHelper实现分页查询
    目录使用PageHelper实现分页查询1、创建数据表2、创建项目2.1 创建实体类(Entity层)2.2 数据库映射层(Mapper层)3、运行测试MyBatis PageHel...
    99+
    2022-11-12
  • css如何实现数字分页效果
    本篇内容介绍了“css如何实现数字分页效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!CSS如何实现数字...
    99+
    2022-10-19
  • MVC怎么使用MvcPager实现分页效果
    今天小编给大家分享一下MVC怎么使用MvcPager实现分页效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、数据库表U...
    99+
    2023-06-29
  • vue+elementUI实现分页效果
    本文实例为大家分享了vue+elementUI实现分页效果的具体代码,供大家参考,具体内容如下 页面中渲染的数据不是所有数据,是需要展示的数据,即当前页的数据,默认第一页的数据,这里...
    99+
    2022-11-13
  • vue+Element实现分页效果
    本文实例为大家分享了vue+Element实现分页效果的具体代码,供大家参考,具体内容如下 一般样式都是card里面包含列表和分页 这里就直接上代码了 <el-card&g...
    99+
    2022-11-12
  • node+express实现分页效果
    本文实例为大家分享了node+express实现分页效果展示的具体代码,供大家参考,具体内容如下 效果如下 1、 index.js 在index.js  //数据列表...
    99+
    2022-11-12
  • jQuery实现Table分页效果
    本文实例为大家分享了jQuery实现Table分页效果的具体代码,供大家参考,具体内容如下 CSS: <style> .pager { fon...
    99+
    2022-11-12
  • html+css如何实现静态分页效果
    这篇文章给大家分享的是有关html+css如何实现静态分页效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   html部分   创建一个<div>,给其一个类...
    99+
    2022-10-19
  • 如何实现Ajax无刷新分页效果
    这篇文章给大家分享的是有关如何实现Ajax无刷新分页效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Ajax无刷新分页效果,如下代码实现<!doctype ht...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作