文章目录

  • 1、Limit实现分页
  • 2、RowBounds分页(不建议使用)
  • 3、MyBatis分页插件PageHelper(了解即可)

1、Limit实现分页

  • sql语句

    SELECT * from user limit startIndex,pageSize
    
  • 简单示例:

    • user表

    • 查询一:从第一行数据【 startIndex:0】开始,查询两行【pageSize:2】数据

      SELECT * from user limit 0,2;
      

    • 查询二:从第三行数据【 startIndex:2】开始,查询两行【pageSize:2】数据

      SELECT * from user limit 2,2;
      

    • 查询三:只有一个参数表示从第一行数据开始,查询三行【pageSize:3】数据

      SELECT * from user limit 3;
      

  • 使用Mybatis实现分页,核心SQL

    • 接口

      public interface UserMapper {//分页List<User> getUserByLimit(Map<String,Integer> map);
      }
      
    • Mapper.xml

      <!--分页-->
      <select id="getUserByLimit" parameterType="map" resultType="包名.User">select * from user limit #{startIndex},#{pageSize};
      </select>
      
    • 测试

      public class UserMapperTest {@Testpublic void getUserByLimit() {SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);HashMap<String, Integer> map = new HashMap<>();map.put("startIndex", 0);map.put("pageSize", 2);List<User> userList = mapper.getUserByLimit(map);for (User user : userList) {System.out.println(user);}sqlSession.close();}
      }
      
    • 测试结果

2、RowBounds分页(不建议使用)

  • 不使用SQL实现分页,通过java代码层面实现分页

    • 接口

      //分页2:RowBounds
      List<User> getUserByRowBounds();
      
    • Mapper.xml

      <!--分页:RowBounds-->
      <select id="getUserByRowBounds" resultMap="UserMap">select * from user
      </select>
      
    • 测试

      @Test
      //分页2:RowBounds
      public void getUserByRowBounds(){SqlSession sqlSession = MybatisUtils.getSqlSession();//RowBounds实现RowBounds rowBounds = new RowBounds(0, 2);//通过java代码层面实现分页List<User> userList = sqlSession.selectList("com.ping.dao.UserMapper.getUserByRowBounds",null,rowBounds);for (User user : userList) {System.out.println(user);}sqlSession.close();
      }
      
    • 测试结果

3、MyBatis分页插件PageHelper(了解即可)

详细文档:https://pagehelper.github.io/

Mybatis实现分页的三种方式相关推荐

  1. oracle分页的三种方式,oracle 使用rownum的三种分页方式

    rownum是Oracle数据库中的一个特有关键字,返回的是一个数字代表记录的行号. 基础知识:rownum只能做 获取51到100的数据 三种分页的写法: 1.使用minus,原理就是查询出前100 ...

  2. mybatis实现分页的几种方式

    本文目录 借助数组进行分页 借助Sql语句进行分页 拦截器分页 RowBounds实现分页 借助数组进行分页 原理:进行数据库查询操作时,获取到数据库中所有满足条件的记录,保存在应用的临时数组中,再通 ...

  3. Mybatis传递参数的三种方式

    第一种: Dao层使用@Param注解的方法 VersionBox getVersionByVersionNumAndVersionType(@Param("versionNum" ...

  4. mybatis 传递参数的三种方式

    mybatis 框架的主要工作是数据层, 侧重于与数据库打交道的sql语句的编写,对sql也要求比较熟练. mybatis 传递参数的方式主要有三种: 1. 多个参数的传递方式    形式如:    ...

  5. MyBatis实现模糊查询的三种方式

    MyBatis实现模糊查询的三种方式 准备 模糊查询 方式一 方式二 方式三 由于#{}是占位符本身,自带单引号,所以在模糊查询时需要一些技巧. 准备 数据库表 bean 模糊查询 以查询出所有用户名 ...

  6. MyBatis中模糊查询LIKE的三种方式

    在操作数据库时,查询是最常用的语句,模糊查询也是数据库SQL中使用频率很高的SQL语句,利用MyBatis框架来进行更加灵活的模糊查询,有如下三种方式: (1)直接传参法        直接传参法,就 ...

  7. MyBatis插入大量数据效率对比:foreach、SqlSession、sql三种方式批量插入

    用mybatis插入数据执行效率对比,对比三种方式(测试数据库为MySQL), 使用 SqlSessionFactory,每一批数据执行一次提交 使用mybatis-plus框架的insert方法,f ...

  8. MyBatis获取参数值的两种方式以及传参情况

    MyBatis获取参数值的两种方式 MyBatis获取参数值的两种方式:${}和#{} 传参情况 演示环境 1.单个字面量类型的参数 2.多个字面量类型的参数 3.map集合类型的参数 4.实体类类型 ...

  9. QT写word的三种方式

    最近项目里用到了QT写word,入了不少坑,也有了一些很基础的认识,简单说说,希望能帮到大家. 三种方式如下: 1.通过html (优点生成速度快,有点html.css基础就能上车:缺点是只支持css ...

最新文章

  1. USTC并行计算复习
  2. Spring核心AOP(面向切面编程)
  3. cmd常见错误及解决方法
  4. getmenuiteminfo无法读取内存_笔记本内存加装教程,看完包会!为了这篇文章,我把电脑都拆了!...
  5. linux cp复制文件夹下的软连接,Linux培训:cp命令复制文件和目录
  6. linux命令中cd / 和 cd ~
  7. adb logcat 基本用法
  8. Codeforces 847H - Load Testing
  9. 线路板铜厚测试软件,厚铜线路板的铜厚是如何实现的
  10. hadoop单击模式环境搭建
  11. Python实现多线程并发下载大文件(断点续传支持)
  12. 使用pako.js压缩、解压数据
  13. Houdini12:渲染-渲染器SHOP
  14. 解决warning: #1296-D: extended constant initialiser used告警
  15. Civil 3d 之枚举 SpiralType
  16. L1和L2简单易懂的理解
  17. 医学图像处理与深度学习入门
  18. OPC 0x00000005 问题
  19. nc文件处理学习资料
  20. 如何用标题博得观众眼球

热门文章

  1. oppoA57 连上电脑之后没反应
  2. 华为p10和p10plus区别_华为p10和p10 plus哪个好 华为p10和p10plus区别【详解】
  3. 解密:互联网地下黑市都在卖什么?
  4. 惊悚!跟姗姐学,瘦到90斤
  5. angularJs的input验证提醒
  6. 唯品会:高利润,慢增长?
  7. 来自Google的TCP BBR拥塞控制算法解析
  8. 盘点丨除了卫星通信,北斗短报文还有这些常见的行业应用
  9. 【Java编程】04_多线程
  10. React——context越级传值