mybatis_7分页查询

思考:为何要分页?java

  • 减小数据的处理量

7.一、使用Limit分页

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

使用Mybatis实现分页,核心SQLgit

  1. 接口github

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

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

    @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",1);
        map.put("pageSize",2);
    
        List<User> userList =  mapper.getUserByLimit(map);
        for (User user : userList) {
        System.out.println(user);
        }
    
        sqlSession.close();
        }

7.二、RowBounds分页

再也不使用SQL实现分页,使用java代码实现分页,不推荐使用app

  1. 接口测试

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

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

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

7.三、分页插件

mybaits-pagehelperxml

相关文章
相关标签/搜索