分页

分页

为什么要分页!

  • 减少数据的处理量

1.1使用Limit分页

语法:SELECT * from user limit startIndex,pageSize
SELECT  * from user limit 2,2
SELECT  * from user limit 3 #[0,n]

使用Mybatis实现分页,核心SQL

  1. 接口

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

2.Mapper.xml

    <!--    分页-->
   <select id="getUserByLimit" parameterType="map" resultMap="UserMap">
      select * from mybatis.user limit #{startIndex},#{pageSize}
   </select>

3.测试

    @Test
   public void getUserByLimit(){
       SqlSession sqlSession = MybatisUtils.getSqlSession();
       UserMapper mapper = sqlSession.getMapper(UserMapper.class);

       HashMap<String, Integer> map = new HashMap<String, Integer>();
       map.put("startIndex",0);
       map.put("pageSize",2);

       List<User> userList = mapper.getUserByLimit(map);
       for (User user : userList) {
           System.out.println(user);
      }
       
       sqlSession.close();
  }

1.2RowBounds分页

不再使用SQL实现分页

1.接口

    //分页2
  List<User> getUserByRowBounds();

2.Mapper.xml

<!--    分页2-->
   <select id="getUserByRowBounds" resultMap="UserMap">
      select * from mybatis.user
   </select>

3.测试

    @Test
   public void getUserByRowBounds(){
       SqlSession sqlSession = MybatisUtils.getSqlSession();

       //RowBounds实现
       RowBounds rowBounds = new RowBounds(0, 2);

       //通过java代码层面实现分页
       List<User> userList = sqlSession.selectList("com.lcbin.dao.UserMapper.getUserByRowBounds",null,rowBounds);

       for (User user : userList) {
           System.out.println(user);
      }
       
       sqlSession.close();
  }

1.3分页插件(了解)

img

 

posted @ 2022-03-08 22:35  彬不冰  阅读(44)  评论(0)    收藏  举报