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;我对这些观点也深以…

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…

利用matlab绘制图形

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

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; 下面这些是为了更好地…

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

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

利用matlab guide制作简易计算器

前言&#xff1a; 当然了这个太简单了&#xff0c;新手可以借鉴一下&#xff0c;举一反三的话还可以添加一些功能或者简洁一些。比如下拉框啊之类的 而且呢&#xff0c;这个你弄明白了&#xff0c;所有运算有关的&#xff0c;输入输出有关的&#xff0c;都大致相同。 实现过程…

linux复制目录命令夹,linux复制目录(文件夹)和打包命令

linux复制目录(文件夹)和打包命令复制目录命令&#xff1a; cp 需要复制的目录 -r 目的目录 (注意带参数-r)压缩文件&#xff1a;zip -r 压缩后文件名 需要压缩的目录喎?http://www.Bkjia.com/kf/ware/vc/" target"_blank" class"keylink">vcD4KP…

c#怎么拟合函数得到参数_吴恩达老师课程笔记系列第32节 -正则化之代价函数(2)...

第32节 -正则化之代价函数(2)参考视频: 7 - 2 - Cost Function (10 min).mkv 上面的回归问题中如果我们的模型是&#xff1a;我们可以从之前的事例中看出&#xff0c;正是那些高次项导致了过拟合的产生&#xff0c;所以如果我们能让这些高次项的系数接近于 0 的话&#xff0c;我…

Matlab guide菜单+快捷菜单的使用

菜单选择&#xff1a; Opening函数&#xff1a; openingFcn执行于窗口可见之前&#xff0c;这个时候你想做什么的话可以把代码写进去 function plott_OpeningFcn(hObject, eventdata, handles, varargin) t1/200:1/200:1; plot(t,sin(2*pi*t*10),r);几个回调函数&#xff1a; …

c向文件中插入数据_如何把数据写入顺序文件中,VBA代码中Write#语句的利用

大家好&#xff0c;我们今日继续讲解VBA代码解决方案的第132讲内容&#xff1a;使用 Write #语句把数据写入打开顺序文件中。在上一讲的内容中我们讲了打开一文本文件来写入数据的两种方法有&#xff1a;Append或Output&#xff0c;那么问题来了&#xff0c;如何往打开的文件中…

JavaScript变量声明+数据类型+数字格式+操作符+进制

文章目录1.那些高大上的概念术语都是指什么什么是web应用&#xff1f;什么是前台后台&#xff1f;怎么做网页界面呢&#xff1f;JavaScript可以应用到什么上面&#xff1f;2.JavaScript实例&#xff1a;3.语言基础变量声明数据类型基本数据类型&#xff1a;引用数据类型&#x…

linux 磁盘簇,linux系统exec簇工作原理

操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体&#xff0c;它们互相依赖&#xff0c;不可分割。计算机的硬件&#xff0c;含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是…

JavaScript 函数定义+内置函数使用+array对象+object类型

文章目录函数定义random()setInterval()setTimeout()数组对象object函数定义 两种格式&#xff1a; function 自定义函数名称(参数1&#xff0c;参数2&#xff0c;...&#xff0c;参数n){ //函数体 return 返回值; }函数表达式写法&#xff08;匿名函数&#xff09;&#xff…

jmeter进程和线程的区别_一文搞懂进程和线程的区别

计算机系统是由硬件和软件组成的&#xff0c;它们共同协作以运行应用程序。先来看下面这张一个典型的计算机系统的硬件组成图从上图中看出一个系统由 CPU、ALU(算术逻辑单元)、PC(程序计数器)、总线(贯穿整个系统的一组电子管道)、IO设备、主存等组成。这些硬件的管理都是由操作…

BOM+DOM+JavaScript读取与操作网页对象

DOM 网页的元素有多种定义方式&#xff0c;那我们怎么描述或指定页面上某个元素呢。为了统一方式&#xff0c;产生了document object model 标准 以HTML表单为例&#xff0c; 文本字段前面的标题由label标签声明 每个表单字段都通过id属性设置唯一的识别名称&#xff0c;用于让…