zoukankan      html  css  js  c++  java
  • Mybatis-分页

    分页

    为什么要分页:

    • 减少数据的处理量

    1. 使用limit分页

    select * from user limit 0, 2;
    select * from user limit 2, 2;
    

    limit n,m ==> n为页起始的位置(从0开始), m为每页的个数

    2. 使用Mybatis实现分页

    核心 SQL

    1. 使用limit实现

    接口

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

    UserMapper.xml

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

    测试

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

    2. 使用RowBounds实现分页(了解)

    不再使用SQL实现分页

    接口

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

    UserMapper.xml

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

    测试

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

    3. 分页插件(了解)

    https://pagehelper.github.io/

  • 相关阅读:
    [JSOI2015]最小表示
    [洛谷2002]消息扩散
    [洛谷1726]上白泽慧音
    [CodeVS2822]爱在心中
    [POJ2186]Popular Cows
    [洛谷1991]无线通讯网
    [CQOI2009]跳舞
    [洛谷1342]请柬
    [USACO07JAN]Balanced Lineup
    [NOIp2003提高组]神经网络
  • 原文地址:https://www.cnblogs.com/wang-sky/p/13588423.html
Copyright © 2011-2022 走看看