源代码:GitHub链接

环境:

用到的技术:

使用方式:


项目结构


主要源代码(全部源码在github链接)

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><table border="1"><tr><th>编号</th><th>姓名</th><th>年龄</th></tr><c:forEach items="${PageInfo.dataList }" var="pi"><tr><td>${pi.id }</td><td>${pi.name }</td><td>${pi.age }</td></tr></c:forEach></table><a href="ShowServlet?pageNum=${PageInfo.pageNum-1 }&pageSize=${PageInfo.pageSize}" <c:if test="${PageInfo.pageNum<=1 }">  οnclick="javascript:return false;" </c:if> >上一页</a><a href="ShowServlet?pageNum=${PageInfo.pageNum+1 }&pageSize=${PageInfo.pageSize}" <c:if test="${PageInfo.pageNum>=PageInfo.total }">  οnclick="javascript:return false;" </c:if> >下一页</a>
</body>
</html>

ShowServlet.java

package cn.hanquan.servlet;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import cn.hanquan.pojo.PageInfo;
import cn.hanquan.service.PeopleService;
import cn.hanquan.service.impl.PeopleServiceImpl;/*** 分页显示People信息* * @author Buuug**/
@WebServlet("/ShowServlet")
public class ShowServlet extends HttpServlet {private PeopleService peopleService = new PeopleServiceImpl();@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 第一次访问的验证,如果没有传递参数,设置默认值String pageSizeStr = req.getParameter("pageSize");int pageSize = 2;if (pageSizeStr != null && !pageSizeStr.equals("")) {pageSize = Integer.parseInt(pageSizeStr);}String pageNumberStr = req.getParameter("pageNum");int pageNum = 1;if (pageNumberStr != null && !pageNumberStr.equals("")) {pageNum = Integer.parseInt(pageNumberStr);}PageInfo pi = peopleService.showPage(pageSize, pageNum);System.out.println(pi.getDataList());req.setAttribute("PageInfo", pi);req.getRequestDispatcher("index.jsp").forward(req, resp);}
}

PeopleServiceImpl.java

package cn.hanquan.service.impl;import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.log4j.Logger;import cn.hanquan.pojo.PageInfo;
import cn.hanquan.pojo.People;
import cn.hanquan.service.PeopleService;/*** 在数据访问层、控制器中处理异常,在service中只抛出异常* * @author Buuug**/
public class PeopleServiceImpl implements PeopleService {Logger logger = Logger.getLogger(PeopleServiceImpl.class);@Overridepublic PageInfo showPage(int pageSize, int pageNum) throws IOException {InputStream is = Resources.getResourceAsStream("mybatis.xml");SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);SqlSession session = factory.openSession();PageInfo pi = new PageInfo();pi.setPageNum(pageNum);pi.setPageSize(pageSize);// 查询结果Map<String, Object> map = new HashMap<>();map.put("pageStart", pageSize * (pageNum - 1));map.put("pageSize", pageSize);List<People> list = session.selectList("cn.hanquan.mapper.PeopleMapper.selByPage", map);pi.setDataList(list);logger.debug(list);// 总页数int count = session.selectOne("cn.hanquan.mapper.PeopleMapper.selCount");pi.setTotal((count % pageSize == 0 ? count / pageSize : count / pageSize + 1));logger.debug("总人数:"+pi.getTotal());return pi;}
}

mybatis.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><settings><setting name="logImpl" value="LOG4J"/></settings><!-- 给类起别名 --><typeAliases><package name="cn.hanquan.pojo"/></typeAliases><environments default="default"><environment id="default"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/people?serverTimezone=UTC"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><mappers><mapper resource="cn/hanquan/mapper/PeopleMapper.xml"/></mappers>
</configuration>

PeopleMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 填写实例化的包名+类名,在java代码中调用语句的时候使用 -->
<mapper namespace="cn.hanquan.mapper.PeopleMapper"><!-- limit分页查询 -->    <select id="selByPage" resultType="People" parameterType="map">select * from people limit #{pageStart}, #{pageSize}</select><!-- 查询总数 --><select id="selCount" resultType="int">select count(*) from people</select></mapper>

【MyBatis】Mybatis实现分页效果相关推荐

  1. java 分页_Spring Boot + MyBatis 如何借助PageHelper插件实现分页效果

    概述 上文中已经介绍了Spring和MyBatis的整合,在上文的基础上我们加入了PageHelper这个插件,来实现MyBatis列表查询的分页效果 PageHelper是啥 PageHelper是 ...

  2. springboot2.0.5集成mybatis(PageHelper分页插件、generator插件使用)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/zab635590867/article ...

  3. 前端Vue+ElementUI的Pagination分页组件实现分页展示 后端Spring Boot +Mybatis Plus实现分页接口

    前端Vue+ElementUI的Pagination分页组件实现分页展示 & 后端Spring Boot +Mybatis Plus实现分页接口 很久没有更新博客了,主要原因是博主一直在补充自 ...

  4. Mybatis实现自定义分页插件

    mybatis自定义分页插件,步骤如下[文章末尾关注公众号获取完整代码]: (1)环境搭建 创建一个maven工程,然后引入mybatis依赖和mysql依赖即可. <dependency> ...

  5. Mybatis自定义轻量级分页组件(易集成,易拓展)

    Mybatis自定义轻量级分页组件(易集成,易拓展) 其实github有一个叫做PageHelper的开源分页组件,我也用过,封装的还可以.只是感觉他的量级偏重,其实很多参数,都是我们开发中不需要的参 ...

  6. Mybatis最入门---分页查询(逻辑分页与SQL语句分页)

    [一步是咫尺,一步即天涯] 到目前为止,我们介绍的Mybatis种种查询都是一次性的查询出所有结果并返回给上层.但是,在实际开发过程中,在大量数据存在的情况下,是很少这么做的.本文,我们将从逻辑分页, ...

  7. Mybatis如何实现分页

    Mybatis如何实现分页 关键字limit实现分页 Interceptor Plugin实现分页 首先定一个拦截器,拦截器会拦截所有以ByPage结尾的方法,然后拼接sql 语句的limit关键字实 ...

  8. 【Mybatis】mybatis如何实现分页

    [Mybatis]mybatis如何实现分页 mysql分页功能原理 实现分页必要条件 必须知道某一页从哪里开始到哪里结束 必须知道页面的大小,也就是指定每页要显示多少条数据量 mysql分页的过程 ...

  9. Mybatis使用之分页

    Mybatis使用之分页 一:简介 注:示例基于mysql数据库.Oracle可以自行测试.   使用Mybatis分页主要有两种方式.一种是将分页参数传递到配置文件中.在写sql的时候就做分页.另一 ...

最新文章

  1. UNIX网络编程--ioctl操作(十七)
  2. java 模拟时钟_java模拟时钟
  3. javascript复制到黏贴板之完美兼容
  4. linux连接Db2数据库时报58031_db2常用命令
  5. spring基础——普通bean xml注入
  6. 俄罗斯方块-C语言-详注版
  7. php服务器错误日志在哪里看,PHP取服务器错误日志
  8. labview csv文件处理_LabVIEW 相关知识点分类汇总
  9. mysql 忘记密码, 亲测有效解决方案,Access denied for user ‘root’@’localhost’ (using password: YES)...
  10. 03-创建模型操作---用户添加
  11. fleaPHP框架的一些基础问题
  12. 计算机基础(2)——重装系统(2)——win10(1)——MediaCreationTool制作WIN10安装U盘,安装纯净版win10的通用教程
  13. PTA 基础练习答案
  14. 密室逃脱实体店怎么吸引客户?这几招教你实现线上引流转化!
  15. 三维地图下载,3D地图下载,谷歌地球三维地形图查看
  16. 论文笔记:Connectionist Temporal Classification: Labelling Unsegmented Sequence
  17. java se runtime environment 6.0_Java SE Runtime Environment v6.0 Update 16
  18. 腾讯和360之争之二
  19. 极坐标可以用计算机吗,极坐标
  20. Google排名查询的8个方法

热门文章

  1. ZOJ - 2706 Thermal Death of the Universe(线段树)
  2. ZOJ - 2955 Interesting Dart Game(鸽巢原理+完全背包)
  3. dns服务器在电脑上有什么作用,DNS服务器是什么 DNS服务器的作用有哪些【详解】...
  4. 华为如何在开发者选项观察错误日志_资讯:华为Mate 40 Pro屏幕供应商曝光;iPhone 13第一版原型机曝光;王者荣耀日均日活用户过亿...
  5. linux基础命令chown,Linux常用命令及组件:chown和chmod
  6. 输入任意长度的字符串,反向输出(递归)
  7. 大润发优鲜app之paramsMD5参数分析
  8. 在linux中解压.tgz
  9. python对excel表格操作
  10. 后悔!我早该把这1W字详解的 InnoDB 原理给你!