分页的使用

分页

思考:为什么要分页?

  • 减少数据的处理量

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)

了解即可,万一以后公司的架构师,说要使用,只需要知道它是什么东西!

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