pagehelper插件oracle,带你学习最简单的分页插件PageHelper

AAffA0nNPuCLAAAAAElFTkSuQmCC

引言:

PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库, 例如mysql、 oracle、mariaDB、 DB2、 SQLite、Hsqldb等。今天墨白就给大家聊聊PageHelper这款分页插件,下面是PageHelper开源地址,感兴趣的小伙伴可以去看一下

PageHelper在 github 的项目地址:

1https://github.com/pagehelper/Mybatis-PageHelper

PageHelper在 gitosc 的项目地址:

1 http://git.oschina.net/free/Mybatis_PageHelper>

先介绍一下这款插件PageHelper

官网地址:

1https://pagehelper.github.io/

访问官网后的页面,官网里面有详细的Demo,今天我们来照着官网自己动手敲个Demo;

AAffA0nNPuCLAAAAAElFTkSuQmCC

如何使用PageHelper?

1.在自己的项目添加依赖,maven项目在父工程添加最新版本,最新版本是5.1.8

1

2 com.github.pagehelper

3 pagehelper

4 5.1.8

5

2.在数据访问层Spring 配置文件中配置拦截器插件,代码如下

1

2

3

4

5

6

7

8

9 helperDialect=mysql

10 reasonable=true

11

12

13

14

15

16

3.PageHelper分页插件参数介绍

这里我只介绍两个常用的,详细的可以去看官网API文档

helperDialect:

分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。 你可以配置helperDialect属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值

1oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby

特别注意:使用 SqlServer2012 数据库时,需要手动指定为 sqlserver2012,否则会使用 SqlServer2005 的方式进行分页。你也可以实现 AbstractHelperDialect,然后配置该属性为实现类的全限定名称即可使用自定义的实现方法。

reasonable:

分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。

4.在代码中使用的两种方式:

第一种

1// 此语句后的第一个select查询自动会被分页

2PageHelper.startPage(1, 10);

3// 这里的查询会自动分页

4List list = countryMapper.selectIf(1);

第二种

1//获取第1页,10条内容,默认查询总数count

2PageHelper.startPage(1, 10);

3List list = countryMapper.selectAll();

4//用PageInfo对结果进行包装

5PageInfo page = new PageInfo(list);

6//测试PageInfo全部属性

7//PageInfo源码中可以看到包含了非常全面的分页属性

8assertEquals(1, page.getPageNum());

9assertEquals(10, page.getPageSize());

10assertEquals(1, page.getStartRow());

11assertEquals(10, page.getEndRow());

12assertEquals(183, page.getTotal());

13assertEquals(19, page.getPages());

14assertEquals(1, page.getFirstPage());

15assertEquals(8, page.getLastPage());

16assertEquals(true, page.isFirstPage());

17assertEquals(false, page.isLastPage());

18assertEquals(false, page.isHasPreviousPage());

19assertEquals(true, page.isHasNextPage());

使用PageHelper

配置好了上面的坐标和Spring配置文件以后,我们直接开始使用PageHelper,每个人的表数据可能都不一样,大家根据需求自己来玩,代码如下

Mapper接口

1/**

2 * CompanyMapper接口

3*/

4public interface CompanyMapper {

5 //查询全部

6 List findAll();

7}

Mapper映射

1

2

3 select * from ss_company where companyId=#{companyId}

4

Service接口

1public interface CompanyService {

2 // 分页查询

3 PageInfo findByPage(int pageNum, int PageSize);

4 //查询所有

5 List findAll();

6}

impl实现

1 // 注入Mapper

2 @Autowired

3 private CompanyMapper companyMapper;

4

5@Override

6public PageInfo findByPage(int pageNum, int pageSize) {

7 // 开始分页, PageHelper组件会自动对其后的第一条查询查询分页

8 PageHelper.startPage(pageNum,pageSize);

9 // 调用dao查询

10 List list = companyMapper.findAll();

11 // 创建PageInfo对象封装分页结果,传入查询集合。会自动计算分页参数

12 PageInfo pageInfo = new PageInfo<>(list);

13 return pageInfo;

14}

单元测试

1@RunWith(SpringJUnit4ClassRunner.class)

2@ContextConfiguration("classpath*:spring/applicationContext-*.xml")

3public class UserServiceImplTest {

4 // 注入service

5 @Autowired

6 private CompanyService companyMapper;

7

8 @Test

9 public void findByPage(){

10 PageInfo pageInfo = companyMapper.findByPage(1, 2);

11 System.out.println(pageInfo);

12 }

13}

测试结果:

AAffA0nNPuCLAAAAAElFTkSuQmCC

控制器:每个人的Controller都不一样,我这里给个模板你们,不明白的可以在后台留言,或者是在群里提问,

仅作参考:

1 @Autowired

2 private CompanyService companyService;

3

4 @RequestMapping("/***")

5 public ModelAndView findByPage(

6 @RequestParam(defaultValue = "1") int pageNum,

7 @RequestParam(defaultValue = "5") int pageSize) {

8

9 ModelAndView mv = new ModelAndView();

10 mv.addObject("pageInfo",pageInfo);

11 mv.setViewName("详情列表");

12 return mv;

13 }

14}

今天的内容就到这里了,加油!!!明天见

本文由公众号【框架师 ,ID:mohu121】首发,转载请注明出处

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验5matlab自定义函数的编写

问题 自定义一个函数&#xff0c;求给定复数的指数、对数、正弦和余弦&#xff0c;并在命令文件中调用该函数。自定义一个函数&#xff0c;计算一行向量中各元素的均值和标准差。求下列方程的根&#xff1a; f(z)exx2xx100.f(z) \ e^{x}x^{2}x^{\sqrt {x}}100\,. f(z) exx2xx…

ic读卡器设置工具_从Matlab被禁来看,给IC教育带来哪些启发?

在上周五看到朋友圈转发包云岗老师就Matlab被禁后在某论坛的发言&#xff0c;在阅读的当时就很有感触&#xff0c;本想当晚就写点东西&#xff0c;不曾想拖到了现在。包老师的梳理的几个点&#xff0c;是结合教学和应用来谈的。在IC教育培训方面&#xff0c;我对这些观点也深以…

oracle数据库主键消失,oracle数据库提示找不到主键

杨泽public class Info {AssignIDString node;String name;}infoDao.single("000001");org.beetl.sql.clazz.kit.BeetlSQLException: 主键未发现,com.hcjj.demo.Info,检查数据库表定义或者NameConversionat org.beetl.sql.core.db.AbstractDBStyle.checkId(AbstractD…

arduino光敏+LED+数码管+蜂鸣器综合实验

内容 用光敏控制LED的明暗程度&#xff0c;光敏值在3位数码管上显示&#xff0c;串口输出光敏值&#xff0c;蜂鸣器到一定的值会didi 话不多说&#xff0c;直接上代码&#xff0c;那几个部分拼到一起&#xff0c;多了个数的拆分&#xff0c;让k1k2k3分别等于百位十位个位 代…

server sql 水平分表_springboot集成Shardingsphere进行分库分表

当公司业务量上去之后&#xff0c;单表支撑不了的时候&#xff0c;分库分表就是一个绕不开的话题&#xff0c;小弟最近新入职一家公司&#xff0c;发现这边公司在用ShardingSphere来进行分库分表&#xff0c;之前没接触过这方面&#xff0c;所以就写了个demo学习一下&#xff0…

网鼎杯2020php反序列化,2020-网鼎杯(青龙组)_Web题目 AreUserialz Writeup

0x02 AreUSerialz关于s大写小写问题&#xff0c;可以看p神在圈子里发的&#xff0c;我在最后付上截图考点: php反序列化 php特性 利用链构造1.打开页面得到代码如下:include("flag.php");highlight_file(__FILE__);class FileHandler {protected $op;protected $file…

物理实验数据处理(c语言)

看程序应该能看懂怎么输入&#xff0c;我就不写具体输入什么了 1.转动惯量的测定 1.不同物体的摆动周期 #include<iostream> #include<cmath> using namespace std;int main(){double pi3.14,jzhi0.187e-4,jjia0.321e-4;double t0,t1,t2,t3,t4,t5;double k,j1,j…

统计csv词频_分词词频统计

网上随便找段文字&#xff0c;就以Power BI官网上这段文字为例好了&#xff1a;想要统计其中的词频&#xff0c;实现如下图的效果&#xff1a;解法1&#xff1a;使用输入法词库其中的难点无疑在分词了&#xff0c;中文不像英文可以按空格拆开分词&#xff0c;仅仅单靠Power Que…

linux 开启关闭tomcat服务器端口,linux系统安装、启动和关闭tomcat

Tomcat 可充当一个完全独立的 web 服务器。Tomcat 最大优势在于 servlet 和 JSP 引擎。安装 tomcat:Sudo yum install -y tomcat-*启动 tomcat:[userlocalhost ~]$ /etc/rc.d/init.d/tomcat start[userlocalhost ~]$[userlocalhost ~]$ /etc/rc.d/init.d/tomcat status[userloc…

利用matlab绘制图形

目前存在的一些问题&#xff1a; 1.第一题的两个图像无法重叠 2.最后一个题的第一个图是六瓣&#xff0c;而我写的是八瓣 感谢张同学给我指出来&#xff0c;目前我正在思考解决方法 第一个的话我以为把框缩小就可以重叠了&#xff0c;但是今天试了一下还是分开的&#xff0c;还…

haddler处理队列 netty_Netty堆外内存泄漏排查,这一篇全讲清楚了

上篇文章介绍了Netty内存模型原理&#xff0c;由于Netty在使用不当会导致堆外内存泄漏&#xff0c;网上关于这方面的资料比较少&#xff0c;所以写下这篇文章&#xff0c;专门介绍排查Netty堆外内存相关的知识点&#xff0c;诊断工具&#xff0c;以及排查思路提供参考现象堆外内…

linux 硬盘大小 命令,linux 查看磁盘空间大小的命令和方法

这篇文章主要为大家详细介绍了linux 查看磁盘空间大小的命令和方法&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。1.Ubuntu 查看磁盘空间大小命令df -h Df命令是linux系统以磁盘分区为单位查看文件系统&#xff…

matlab GUI 设计 自学笔记

图形用户界面&#xff08;Graphical User Interface&#xff0c;GUI&#xff09;&#xff1a; 用户与计算机进行信息交流的窗口。 设计图形用户界面的方法 调用建立用户界面控件的函数 使用MATLAB提供的GUIDE工具进行可视化设计 控件对象及其操作 &#xff08;1&#xff09…

grub shell 错误_各种情况GRUB损坏进不了系统的解决方案

1.在磁盘分区表变动之后&#xff0c;比如删除了grub.cfg所在分区的前一个分区&#xff0c;导致分区号前移一位时&#xff0c;开机显示 grub rescue> 。处理方法&#xff1a;(假设原来grub.cfg在/dev/sda4&#xff0c;而现在变成了/dev/sda3)ls(查看分区)ls (hd0,7)/boot/(查…

linux 系统盘无法ls,linux – ls:阅读目录.:输入/输出错误

当我尝试在已安装的硬盘上使用“ls”时,我的系统引发了I / O错误.我在用hadoophbase1:/hddata$uname -aLinux hbase1 3.8.0-29-generic #42~precise1-Ubuntu SMP Wed Aug 14 16:19:23 UTC 2013 x86_64 x86_64 x86_64 GNU/Linuxhadoophbase1:/hddata$dfFilesystem 1K-blocks Use…

matlab guide对话框+滑动条+弹出式菜单+列表框的使用

文章目录前言matlab数据传递概观对话框创建利用滑动条实现颜色调控利用弹出式菜单选择并输入文本框利用列表框选择并输入文本框前言 我觉得gui无非就是给程序加了件衣服&#xff0c;其实具体的程序我们都会写&#xff0c;我们唯一不明白的是那几个部分数据之间的传递&#xff…

流放之路材质过滤怎么设置_松下除湿机怎么样 松下除湿机款式有哪些型号【详解】...

马上南方就要进入梅雨季节了&#xff0c;潮湿的天气容易滋生细菌&#xff0c;可能会导致人们出现过敏现象&#xff0c;所以很多家庭都选择购买除湿机&#xff0c;现在市场上的除湿机不是很多&#xff0c;其中松下的除湿机比较受欢迎&#xff0c;所以小编我就来跟大家说一说松下…

matlab图形句柄+图形对象+图形对象的属性+对象操作

文章目录前言&#xff1a;图形对象&#xff1a;图形句柄&#xff1a;图形对象的属性&#xff1a;对象的基本操作figure对象(图形窗口)figure()函数&#xff1a;clf()函数清空当前图形窗口&#xff1a;axes坐标轴对象image()line()text()前言&#xff1a; 下面这些是为了更好地…

linux用户开放crontab权限,linux – / etc / crontab权限

/ etc / crontab文件具有以下权限&#xff1a;-rw-R – R–我知道这个文件是用于系统cron作业的,其他用户不应该有权修改它.当前权限允许所有用户读取对文件的访问权限,使他们能够查看内容.是否有必要让所有用户都能读取/ etc / crontab&#xff1f;我相信所有用户都不应该知道…

echart 高度 不用 不撑满_注意厨房台面高度及细节 装出省心舒服 装出事半功倍...

厨房的装修设计最好还是细节做得好&#xff0c;细节做得能达到事半功倍的效果&#xff0c;厨房台面高度如何设计才是最合适呢&#xff1f;我们一起走进包头装修网了解一下吧&#xff01;下面三个台面的设计细节&#xff0c;也许就能让你家的厨房突然变得好用起来——哪怕你可能…