千家信息网

如何使用Mybatis实现分页效果

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章主要介绍如何使用Mybatis实现分页效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、创建分页的工具类PageUti,存储分页所需要的五个数据:pageIndex
千家信息网最后更新 2025年02月05日如何使用Mybatis实现分页效果

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

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

/** * @param  泛型类 */public class PageUtil {    //当前页码    private int pageIndex;    //每页记录数    private int pageSize;    //总记录数    private int count;    //总页数    private int pageNum;    //每一页的内容    private List 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)*每页记录数

        

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

public PageUtil getBooksPage(int pageIndex, int pageSize) {        PageUtil 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 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 = "
  • 共" + data.count + "条,共" + data.pageNum + "页,当前第" + data.pageIndex + "页
  • "; page += "
  • 首页
  • "; if (data.pageIndex == 1) { page += "
  • 上一页
  • "; } else { page += "
  • 上一页
  • "; } // for (var i = 1; i <= data.pageNum; i++) { // page += "" + i + "" // } if (data.pageIndex < data.pageNum) { page += "
  • 下一页
  • "; } else { page += "
  • 下一页
  • "; } page += "
  • 末页
  • ";

    点击分页(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);    }     /**     * @Description: 向外提供一个方法,可以获取SqlSession对象     * @Return: org.apache.ibatis.session.SqlSession     */    public static SqlSession getSqlSession() {//        return sqlSessionFactory.openSession(true);        return sqlSessionFactory.openSession();    }}

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

    页码 内容 数据 参数 对象 页数 效果 工具 文件 方法 篇文章 上一 代理 封装 两个 价值 兴趣 动态 子句 小伙 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术社团英文单词 计算机网络技术网课心得体会 北京软件开发过程应用 北京联讯无线网络技术有限公司 网络安全训练定义 scum服务器退出后会怎么样 梦灵宝可梦服务器 洛克王国2000个服务器 软考中级数据库和软件设计 曲沃天气预报软件开发 为什么征兵网一直显示服务器错误 华为服务器管理员密码忘记 戴尔r系列服务器 csgo检索服务器闪退 许昌市网络安全办公室公务员 国家网络安全周活动落幕 点餐机一体机连接服务器失败 pico超能军团无法加入服务器 戴尔r系列服务器深度 创茂网络技术有限公司 公共网络安全制度什么时间制定的 数据库没有加外键会有什么问题 网络安全队会课件 三明网络安全保护日 网络安全宣传日直播 服务器访问路径 手机网络安全证书不一致 r520安全服务器 小学生网络安全法制教育课 优秀数据库开发工程师学习哪些
    0