Mybatis分页通过limit字段实现

在分页查询时,在前端时会需要页面的各种参数,比如说:页数,页面的大小,总页数,所以不能再使用List返回查询结果。需要自定义一个Page对象包含这些信息进行返回

/**
 * @page 分页起始页
 * @size 每页的数据量
 * @rows 返回结果集
 *@total 记录条数、
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Pager<Student> {
    private int page;
    private int size;
    private List<Student> rows;
    private long total;
}

Mapper
@Mapper
public interface StudentMapper {
	//Map中的字段是limit语句所需要的偏移量与size
    public List<Student> findByPager(Map<String,Object> params);
	
    public long count();

}

Mapper.xml

在这里需要对page对象处理过后再传入数据库查询,可以在service层通过size进行计算

  <select id="findByPager" resultType="com.lxp.domain.Student">
        select *
        from tb_student
        limit #{page},#{size}
    </select>

    <select id="count" resultType="Long">
        select count(1) from tb_student
    </select>
测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class MyBatisTest {

    @Autowired
    StudentMapper studentMapper;
    @Test
    public void find(){
        Map<String,Object> map=new HashMap<String,Object>();
        map.put("page",1);
        map.put("size",5);
        Pager<Student> pager=new Pager<Student>();
        List<Student> list=studentMapper.findByPager(map);
        pager.setRows(list);
        pager.setTotal(studentMapper.count());
        System.out.println(pager);

    }
  }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值