Mybatis--分页的几种方式你掌握了吗?

本文详细介绍了MyBatis的三种分页实现方式:Limit分页、RowBounds分页及分页插件PageHelper的使用。Limit分页通过设置起始索引和页大小实现,但已修复了使用-1作为结束索引的漏洞。RowBounds分页则通过RowBounds对象直接在Java代码层面实现,不推荐在实际开发中使用。PageHelper插件提供更便捷的分页功能,简化了分页代码的编写。
摘要由CSDN通过智能技术生成

  • 主要是为了减少数据的处理量

1 使用Limit分页

select * from user limit startInde,pageSize

以往可以将最后一个设置成-1表示查询到最后一个,但是现在被修复了。不能使用-1了

使用Mybatis实现分页,核心算sql

1.接口

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

2.mapper.xml

<!--结果集映射-->
<resultMap id="UserMap" type="User">
	<!--column是数据库中的字段,property实体类中的属性-->
	<!--        <result column="id" property="id"/>
	<result column="name" property="name"/>-->
	<result column="pwd" property="password"/>
</resultMap>
<!--实现分页-->
<!--没有做结果集映射都是resultType-->
<select id="getUserByLimit" parameterType="map" resultMap="UserMap">
	select * from mybatis.user limit #{startIndex},#{pageSize}
</select>

3.测试:

@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",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.接口

//实现分页2
List<User> getUserByRowBounds();

2.mapper.xml

<!--结果集映射-->
<resultMap id="UserMap" type="User">
    <!--column是数据库中的字段,property实体类中的属性-->
    <!--        <result column="id" property="id"/>
        <result column="name" property="name"/>-->
    <result column="pwd" property="password"/>
</resultMap>
<!--实现分页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.hxl.dao.UserMapper.getUserByRowBounds",null,rowBounds);
    System.out.println(userList);
    sqlSession.close();
}

3. 分页插件

Mybatis分页插件 PageHelper

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秦 羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值