我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何使用Mybatis实现分页效果

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何使用Mybatis实现分页效果

这篇文章主要介绍如何使用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 js= JSON.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实现分页效果”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

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

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

如何使用Mybatis实现分页效果

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

下载Word文档

猜你喜欢

如何使用Mybatis实现分页效果

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

SpringBoot使用PageHelper插件实现Mybatis分页效果

SpringBoot集成PageHelper插件实现MyBatis分页。通过Maven依赖配置和@PageHelper注解,可轻松实现分页查询。PageHelper提供自定义分页查询、合理化分页、查询统计等高级功能。分页参数需在查询方法内部使用,分页结果可通过Page对象获取。示例代码展示了PageHelper的使用,包括Maven配置、Mapper接口、Controller方法和启动类。PageHelper为MyBatis分页提供了灵活、高效的解决方案,满足各种分页需求。
SpringBoot使用PageHelper插件实现Mybatis分页效果
2024-04-02

mybatis分页效果实现代码

本文为大家分享了mybatis分页效果展示的具体代码,供大家参考,具体内容如下mybatis版本3.4以下结构:spring-mvc.xml
2023-05-31

在mybatis项目中使用oracle如何实现一个分页效果

在mybatis项目中使用oracle如何实现一个分页效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,
2023-05-31

MVC怎么使用MvcPager实现分页效果

今天小编给大家分享一下MVC怎么使用MvcPager实现分页效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、数据库表U
2023-06-29

如何使用jquery实现页面弹球效果

这篇文章主要为大家展示了“如何使用jquery实现页面弹球效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用jquery实现页面弹球效果”这篇文章吧。具体内容如下像windows屏保一样
2023-06-26

如何使用CSS实现Tab页切换效果

这篇文章主要介绍如何使用CSS实现Tab页切换效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!三种写法:1、利用 :hover 选择器缺点:只有鼠标在元素上面的时候才有效果,无法实现选中和默认显示某一个的效果2、利
2023-06-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录