如何使用Mybatis实现分页效果
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章主要介绍如何使用Mybatis实现分页效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、创建分页的工具类PageUti,存储分页所需要的五个数据:pageIndex
千家信息网最后更新 2024年11月20日如何使用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安全错误
数据库的锁怎样保障安全
win764位数据库
科技场景互联网
饥荒服务器本地鲜血mod
江苏自动软件开发价格
建网站服务器怎么选择
冷箭计划软件开发
宝塔修改数据库连接参数
我国现行的网络安全
蛋白质指纹技术数据库
ecp数据库
同守网络安全 共享优质资源
软件开发合同功能需求
产品追溯软件开发多少钱
网络安全落实四个什么
qt增删sqlsever数据库
长宁区管理软件开发欢迎咨询
高中生网络安全教育材料
一台服务器设置两个ip
如何参与鸿蒙软件开发
香菇的炮灰不在服务器
株洲网络安全技术培训十大品牌
漳州软件开发的号码
多服务器远程管理软
frp服务器可以设置几个端口
南京交易软件开发团队
数据库设计中时间的数据类型
数据库外键怎么区分
长宁区管理软件开发欢迎咨询
QQ群机器人服务器永久
软件开发利用建设内容