Mybatis之分页

Mybatis

7、分页

7.1、思考:为什么要分页?

  • 减少数据的处理量。

7.2、使用limit分页

  • 语法:select * from user limit startIndex,pageSize;
    select * from user limit 2,2;   #[0,n]
    
  • 接口

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

    •  <select id="getUserByLimit" parameterType="map" resultMap="UserMap">
              select * from ibatis.user limit #{startIndex},#{pageSize}
       </select>
      
  • 测试

    • static  Logger logger = Logger.getLogger(UserMapperTest.class);
          @Test
          public void testGetUserByLimit(){
              SqlSession sqlSession = MybatisUtils.getSqlSession();
              UserMapper mapper = sqlSession.getMapper(UserMapper.class);
              HashMap<String, Integer> map = new HashMap<String, Integer>();
               map.put("startIndex",1);
               map.put("pageSize",2);
              List<User> userByLimit = mapper.getUserByLimit(map);
              for (User user : userByLimit) {
                  System.out.println(user);
              }
              sqlSession.close();
          }
      

7.3、RowBounds分页

  • 接口

    • //分页2
          List<User> getUserByRowBounds();
      
  • mapper.xml

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

    •  @Test
          public void getuserByRowBounds() {
              SqlSession sqlSession = MybatisUtils.getSqlSession();
              //RowBounds实现
              RowBounds rowBounds = new RowBounds(1, 2);
              // 通过Java代码层面实现分页
              List<User> userList = sqlSession.selectList("com.jcooling.mapper.UserMapper.getUserByRowBounds",null,rowBounds);
              for (User user : userList) {
                  System.out.println(user);
              }
              sqlSession.close();
          } 
      

7.4、分页插件

  • pagehelper
posted @ 2021-11-24 00:20  JCooling  阅读(60)  评论(0)    收藏  举报