分頁的使用

分頁

思考:爲什麼要分頁?

  • 減少數據的處理量

1 使用Limit分頁

select * from user limit startIndex,pageSize

使用Mybatis實現分頁,核心SQL

  1. 接口

    //分頁
    List<User> getUserByLimit(Map<String,Integer> map);
    
  2. Mapper.xml(爲什麼下面的參數要使用Map)

        <select id="getUserByRowBounds" parameterType="map" resultType="com.kuang.pojo.User">
            select * from user limit #{startIndex},#{pageSize}
        </select>
    
    
    記住:Map是有別名的,還有就是寫類的時候,一定要寫全了,比如說:com.kuang.pojo.User
    
  3. 測試(測試中就是使用Map比較好了)

    @Test
        public 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實現分頁

  1. 接口

    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(1, 2);
    
        //通過java代碼層面實現分頁
        List<User> userList = sqlSession.selectList("com.rui.dao.UserMapper.getUserByRowBounds",null,rowBounds);
    
        for (User user : userList) {
            System.out.println(user);
        }
        sqlSession.close();
    }
    

3 分頁插件(PageHelper)

瞭解即可,萬一以後公司的架構師,說要使用,只需要知道它是什麼東西!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章