《SSM笔记——Mybatis》7、分页

版权声明:本文为博主ExcelMann的原创文章,未经博主允许不得转载。

7、分页

作者:ExcelMann,转载需注明。

思考,为什么要用分页?

​ 减少数据的处理量。

7.1、使用Limit实现分页(sql层面,常用)

使用sql的limit分页

语法:select * from user limit startIndex,pageSize;
select * from user limit 0,2;

使用MyBatis实现分页,核心是SQL

  1. 接口
// 分页查询所有用户
List<User> getLimitUserList(Map<String,Integer> map);
  1. mapper.xml
<!--分页查询所有用户-->
<select id="getLimitUserList" parameterType="map"  resultType="user">
    select * from mybatis.user limit #{startIndex},#{pageSize}
</select>
  1. 测试
public void selectLimitUser(){
    SqlSession sqlSession = MybatisUtils.getSqlSession();

    UserMapper mapper = sqlSession.getMapper(UserMapper.class);

    Map<String, Integer> hashMap = new HashMap<String, Integer>();
    hashMap.put("startIndex",0);
    hashMap.put("pageSize",2);

    List<User> limitUserList = mapper.getLimitUserList(hashMap);
    for (User user : limitUserList) {
        System.out.println(user);
    }

    sqlSession.close();
}

缺点:还是在代码中写sql传参!

7.2、RowBounds分页(java层面)

虽然是面向对象实现分页,但是没有直接写sql实现快。

在sql中,不存在limit,直接用java代码实现分页。

  1. 接口
// 分页查询所有用户2
List<User> getLimitUserListByRowBounds();
  1. mapper.xml
<!--分页查询所有用户2-->
<select id="getLimitUserListByRowBounds" resultType="user">
    select * from mybatis.user 
</select>
  1. 测试
@Test
public void selectLimitUserByRowBoudns(){
    SqlSession sqlSession = MybatisUtils.getSqlSession();

    RowBounds rowBounds = new RowBounds(2, 2);
    List<User> userList = sqlSession.selectList("com.Excelman.dao.UserMapper.getLimitUserListByRowBounds", null, rowBounds);

    for (User user : userList) {
        System.out.println(user);
    }

    sqlSession.close();
}

7.3、分页插件(待了解)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qvgIIh2N-1615081168618)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210223161720580.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值