当前位置: 首页 > news >正文

idea推荐springboot+mybatis+分页查询插件之PageHelper

一.插件使用原因

在进行分页查询操作时,我们总能发现一个问题,就是分页查询这个功能的后端代码,似乎写起来较为繁琐,并且仔细研究可以发现,除了自定义的参数名不同,其他步骤可以说是几乎一致。

所以为了简化开发流程优化代码,因此有这么一款idea插件横空出世。在mybaits框架中,目前最为流行的就是PageHelper分页插件。

通过这一插件,可以大大简化mapper以及serviceimpl层的代码书写。

二.插件与原始写法的区别

一般来说,实现分页查询需要统计总记录数,使用插件可以省略这一步骤。

在进行分页查询时,我们通常通过limit这个关键字来指定分页参数,这个操作也可以通过插件省略。

我们要做的仅有写出查询语句即可。

至于为什么可以这么省略,则是因为我们调用PageHelper中的startPage方法来设置分页参数,然后我们再调用mapper接口中的方法执行正常的查询即可。

三.引入依赖

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.5</version>
</dependency>

四.修改举例

mapper层:

修改前:

@Mapper
public interface Empmapper {/*** 查询所有员工* @return*/
@Select("select count(*) from emp")public long count();
/*** 分页询员工* @return*/
@Select("select * from emp limit #{start},#{pageSize}")
public List<Emp> page(@Param("start") Integer start,@Param("pageSize") Integer pageSize);
}

修改后:

/*
员工信息查询*/
@Select("select * from emp")public List<Emp> list();}

serviceimpl层:

修改前:

@Service
public class EmpServiceImpl implements EmpService {@Autowiredprivate Empmapper empmapper;@Overridepublic PageBean page(Integer page, Integer pageSize) {
//1.获取总记录数Long total = empmapper.count();//2.获取分页查询结果列表Integer start = (page-1)*pageSize;List<Emp> rows = empmapper.page(start,pageSize);//3.封装PageBean对象并返回PageBean pageBean = new PageBean(total,rows);return pageBean;}

修改后:

@Service
public class EmpServiceImpl implements EmpService {@Autowiredprivate Empmapper empmapper;
@Override
public PageBean page(Integer page, Integer pageSize) {//1.设置分页参数PageHelper.startPage(page,pageSize);//2.执行查询List<Emp> rows =empmapper.list();//现在获取到的这个list集合其实是分页查询结果的封装类,还要强转为page类型Page<Emp> p = (Page<Emp>) rows;//这是强转,page是插件自带的方法//3.封装PageBean对象并返回PageBean pageBean = new PageBean(p.getTotal(),p.getResult());return pageBean;
}

http://www.dtcms.com/a/419292.html

相关文章:

  • 南非网站域名做网站微信支付多少钱
  • 网站开发 图形验证码网站建设衤金手指下拉10
  • OPenssh6代码移植的依赖库 OpenSSL双库连接问题的解决方案
  • 商务网站建设组成包括网站优化wordpress 换行
  • tiktok scheme
  • Xrdp 远程桌面配置【笔记】
  • 【Linux】倒计时和进度条实现
  • 网站建设需要用到哪些软件有哪些系统安装wordpress
  • 梯度下降(Gradient Descent)
  • 东莞市建设规划局网站游戏类企业网站模板
  • C++---bind(绑定函数或函数对象的参数)
  • 网站和域名网站开发技术是什么
  • 个人如何开网站西安网络推广外包公司
  • 国产处理器飞腾CPU各系列综合性能对比
  • 南宁网站设计推广wordpress+授权登录
  • 网站建设深圳哪里学品牌建设提升
  • 《LangChain入门指南》学习笔记1:第1章 LangChain:开启大语言模型时代的钥匙
  • 国清汇携手社保基金会推出《国脉相承·传世养老基金》
  • 3、内存系统详解 - 从DDR演进到GPU内存架构的认知基石
  • 芯片和半导体:Intel开始布局14A工艺
  • JavaWeb 课堂笔记 —— 26 SpringBoot 原理
  • 网上国网app下载安装哈尔滨seo优化排名
  • HTTP首部字段(速查-全47种)
  • 嘉兴高端网站定制100网站建设
  • TypeScript的新类型:unknown
  • MacOS 使用ssh2-python报错ImportError: dlopen ... _libssh2_channel_direct_tcpip_ex
  • 天蓝色美容网站扶贫基金会网站建设是哪家公司
  • 大模型离线部署docker(推荐) + dify部署(docker)
  • 如何基于源码快速搭建数字药店系统?药店买药APP开发实战指南
  • 网站开发文档范例赣榆网站建设xxiaoseo