本文主要是介绍7. limit实现分页、RowBounds分页【不推荐使用】、PageHelper插件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 本博客项目结构
- limit实现分页
- 1. UserMapper接口,参数为map
- 2. 修改UserMapper.xml文件
- 3. 在测试类test中传入参数测试
- RowBounds分页【不推荐使用】
- PageHelper
本博客项目结构
limit实现分页
Limit语法介绍
#语法
SELECT * FROM table LIMIT stratIndex,pageSizeSELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 #这个不一定行
#为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last. #如果只给定一个参数,它表示返回最大的记录行数目:
SELECT * FROM table LIMIT 5; //检索前 5 个记录行
步骤:
1. UserMapper接口,参数为map
//选择全部用户实现分页
List<User> selectUser(Map<String,Integer> map);
2. 修改UserMapper.xml文件
<select id="selectUser" parameterType="map" resultType="user">select * from user limit #{startIndex},#{pageSize}
</select>
3. 在测试类test中传入参数测试
- 推断:起始位置 = (当前页面 - 1 ) * 页面大小
//分页查询 , 两个参数startIndex , pageSize
@Test
public void testSelectUser() {SqlSession session = MybatisUtils.getSqlSession();UserMapper mapper = session.getMapper(UserMapper.class);int currentPage = 1; //第几页int pageSize = 2; //每页显示几个Map<String,Integer> map = new HashMap<String,Integer>();map.put("startIndex",(currentPage-1)*pageSize);map.put("pageSize",pageSize);List<User> users = mapper.selectUser(map);for (User user: users){System.out.println(user);}session.close();
}
console输出:
RowBounds分页【不推荐使用】
我们除了使用Limit在SQL层面实现分页,也可以使用RowBounds在Java代码层面实现分页,当然此种方式作为了解即可。我们来看下如何实现的!
步骤:
1、mapper接口
//选择全部用户RowBounds实现分页
List<User> getUserByRowBounds();
2、mapper文件
<select id="getUserByRowBounds" resultType="user">
select * from user
</select>
3、测试类
在这里,我们需要使用RowBounds类
@Test
public void testUserByRowBounds() {SqlSession session = MybatisUtils.getSession();int currentPage = 2; //第几页int pageSize = 2; //每页显示几个RowBounds rowBounds = new RowBounds((currentPage-1)*pageSize,pageSize);//通过session.**方法进行传递rowBounds,[此种方式现在已经不推荐使用了]List<User> users = session.selectList("com.kuang.mapper.UserMapper.getUserByRowBounds", null, rowBounds);for (User user: users){System.out.println(user);}session.close();
}
PageHelper
了解即可,可以自己尝试使用
官方文档:https://pagehelper.github.io/
在MyBatisPlus中,我们也讲解到了分页实现,所以实现方式很多,看自己的理解和熟练程度进行掌握即可!
这篇关于7. limit实现分页、RowBounds分页【不推荐使用】、PageHelper插件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!