分页

思考:为什么分页?

查数据库时,数据太多,可以减少数据处理量。

使用limit分页

语法:SELECT *from user limit startIndex,pageSize;
#startIndex 在哪个开始
#pageSize 每页显示几个

使用ybatis实现分页,核心SQL

mapper接口

public interface UserMapper {
   List<User> getUserList();
   List<User> getUserByLimit(Map<String,Integer> map);
}

mapper.xml resultMapz做了映射

    <select id="getUserByLimit" parameterType="map" resultMap="getUserMap">
      select * from user limit #{startIndex},#{pageSize};
   </select>

测试类

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

       HashMap<String, Integer> map = new HashMap<>();
       map.put("startIndex",1);
       map.put("pageSize",3);
       List<User> userList = userMapper.getUserByLimit(map);
       for (User user : userList) {
           logger.info(user);
      }

       sqlSession.close();
  }

 

RowBounds类分页 了解

接口

public interface UserMapper {

   /* rowBounds 分页*/
   List<User> getUserByRowBounds();
}

mapper.xml

<mapper namespace="com.zy.dao.UserMapper">
   <resultMap id="getUserMap" type="hello">
       <result column="id" property="id"/>
       <result column="name" property="name"/>
       <result column="psw" property="password"/>
   </resultMap>
 
   <!-- RowBounds分页   -->
   <select id="getUserByRowBounds" resultMap="getUserMap">
      select * from user
   </select>
</mapper>

测试类

    @Test
   public void getUserByRowBounds(){
       //创建rowBounds对象
       RowBounds rowBounds = new RowBounds(1,2);
       //sqlSession 选择查询方法 赋值
       SqlSession sqlSession = MybatisUntils.getSqlSession();
       List<User> list = sqlSession.selectList("com.zy.dao.UserMapper.getUserByRowBounds",null,rowBounds);
       for (User user : list) {
           System.out.println(user);
      }
       sqlSession.close();
  }

分页插件

mybatis Pagehelper 百度

posted on 2022-08-17 17:40  可惜君已逝i  阅读(37)  评论(0)    收藏  举报