如何使用Mybatis实现分页效果
发表于:2025-11-17 作者:千家信息网编辑
千家信息网最后更新 2025年11月17日,这篇文章主要介绍如何使用Mybatis实现分页效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、创建分页的工具类PageUti,存储分页所需要的五个数据:pageIndex
千家信息网最后更新 2025年11月17日如何使用Mybatis实现分页效果共" + 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 += "末页 ";
这篇文章主要介绍如何使用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 PageUtilgetBooksPage(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 = "
点击分页(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安全错误
数据库的锁怎样保障安全
华为服务器专用笔记本电脑
sqlite 网络数据库
高级数据库技术讲解
网络安全企业排名 启明星辰
青少年受骗的网络安全视频
网络安全责任人及职责
北京布凡网络技术有限公司
如何修改虚拟机游戏的数据库
我要服务器的图片
招商银行软件开发面试题目
Dell服务器管理卡默认地址
中小型软件开发项目
五举措抓好网络安全
北京通用软件开发报价表
网络安全几区可以插优盘
中国软件开发不授予专利
列举几种重要的数据库资源
s9赛季谁用铠打爆服务器
软件开发免费服务
主题商城显示服务器繁忙
日文数据库
网络安全建设方案怎么写
初中学历能学网络技术吗
数据库中如何声明游标
企业管控软件开发公司价格
汇客通网络技术
评估软件开发人天
苏州微信软件开发团队
企业搭建代理服务器
数据库不会自动备份