如何使用Mybatis实现分页效果
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍如何使用Mybatis实现分页效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、创建分页的工具类PageUti,存储分页所需要的五个数据:pageIndex
千家信息网最后更新 2026年11月02日如何使用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安全错误
数据库的锁怎样保障安全
互联网科技公司起名
美国互联网保险保险科技
互联网科技保险
安徽鑫晟辉互联网科技
壹账通互联网科技
恒生科技互联网指数分析
深圳前海聚择互联网科技有限公司
欧洲十大科技互联网公司
字节跳动和互联网科技
以后互联网后是啥科技
互联网系的金融科技公司
广州恒生互联网科技有限
花神(南京)互联网科技有限公司
互联网与医疗科技
翼展科技 首家互联网医院
互联网金融科技元年
互联网科技收购价值
兰石爱特工业互联网科技分公司
互联网金融金融科技
科技美学互联网 艺术
工业互联网科技新基建
互联网金融 科技
互联网公司会议桌创意科技软装饰
互联网科技公司需要的职位
移动互联网科技股
深圳育鹏互联网科技有限公司招聘
互联网科技和法律行业
本届互联网大会上的黑科技
长沙易易互联网科技有限公司
黑龙江互联网科技公司