zoukankan      html  css  js  c++  java
  • springboot2集成pagehelper

    springboot2集成pagehelper超级简单,本示例直接抄袭官方示例,仅将数据库由H2改成MySQL而已。

    1、 pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.2.1.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>qinfeng.zheng</groupId>
        <artifactId>learn-pagequery</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>learn-pagequery</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.47</version>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>1.2.12</version>
            </dependency>
    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

    2. application.peroperties

    #pagehelper
    pagehelper.helper-dialect=mysql
    pagehelper.params=count=countSql
    pagehelper.reasonable=true
    pagehelper.support-methods-arguments=true
    
    #mysql
    spring.datasource.driver-class-name = com.mysql.jdbc.Driver
    spring.datasource.url= jdbc:mysql://120.79.xx.xx:3306/test?useUnicode=yes&characterEncoding=UTF-8&useSSL=false
    spring.datasource.username = root
    spring.datasource.password = 1212212

    3. 实体类

    public class Country implements Serializable {
        private static final long serialVersionUID = 6569081236403751407L;
    
        private int    id;
        private String countryname;
        private String countrycode;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getCountryname() {
            return countryname;
        }
    
        public void setCountryname(String countryname) {
            this.countryname = countryname;
        }
    
        public String getCountrycode() {
            return countrycode;
        }
    
        public void setCountrycode(String countrycode) {
            this.countrycode = countrycode;
        }
    }

    4,mapper接口类

    @Mapper
    public interface CountryMapper {
        @Select("select * from country")
        List<Country> findAll();
    
    }

    5. cotroller类

    @RestController
    public class CountryController {
        @Autowired
        private CountryMapper countryMapper;
    
        @GetMapping("/findAll")
        public List<Country> findAll(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "20") Integer pageSize) {
            PageHelper.startPage(pageNum, pageSize);
            List<Country> countries = countryMapper.findAll();
    
            Page page = (Page) countries;
            System.out.println("每页展示条数:" + page.getPageSize());
            System.out.println("总条数:" + page.getTotal());
            System.out.println("当前页:" + page.getPageNum());
            System.out.println("总页数:" + page.getPages());
    
            return countries;
        }
    }

    7. 测试数据

      直接抄官方数据 

      

    drop table country if exists;
    
    create table country (
      id int primary key auto_increment,
      countryname varchar(32),
      countrycode varchar(2)
    );
    
    insert into country (id, countryname, countrycode) values(1,'Angola','AO');
    insert into country (id, countryname, countrycode) values(2,'Afghanistan','AF');
    insert into country (id, countryname, countrycode) values(3,'Albania','AL');
    insert into country (id, countryname, countrycode) values(4,'Algeria','DZ');
    insert into country (id, countryname, countrycode) values(5,'Andorra','AD');
    insert into country (id, countryname, countrycode) values(6,'Anguilla','AI');
    insert into country (id, countryname, countrycode) values(7,'Antigua and Barbuda','AG');
    insert into country (id, countryname, countrycode) values(8,'Argentina','AR');
    insert into country (id, countryname, countrycode) values(9,'Armenia','AM');
    insert into country (id, countryname, countrycode) values(10,'Australia','AU');
    insert into country (id, countryname, countrycode) values(11,'Austria','AT');
    insert into country (id, countryname, countrycode) values(12,'Azerbaijan','AZ');
    insert into country (id, countryname, countrycode) values(13,'Bahamas','BS');
    insert into country (id, countryname, countrycode) values(14,'Bahrain','BH');
    insert into country (id, countryname, countrycode) values(15,'Bangladesh','BD');
    insert into country (id, countryname, countrycode) values(16,'Barbados','BB');
    insert into country (id, countryname, countrycode) values(17,'Belarus','BY');
    insert into country (id, countryname, countrycode) values(18,'Belgium','BE');
    insert into country (id, countryname, countrycode) values(19,'Belize','BZ');
    insert into country (id, countryname, countrycode) values(20,'Benin','BJ');
    insert into country (id, countryname, countrycode) values(21,'Bermuda Is.','BM');
    insert into country (id, countryname, countrycode) values(22,'Bolivia','BO');
    insert into country (id, countryname, countrycode) values(23,'Botswana','BW');
    insert into country (id, countryname, countrycode) values(24,'Brazil','BR');
    insert into country (id, countryname, countrycode) values(25,'Brunei','BN');
    insert into country (id, countryname, countrycode) values(26,'Bulgaria','BG');
    insert into country (id, countryname, countrycode) values(27,'Burkina-faso','BF');
    insert into country (id, countryname, countrycode) values(28,'Burma','MM');
    insert into country (id, countryname, countrycode) values(29,'Burundi','BI');
    insert into country (id, countryname, countrycode) values(30,'Cameroon','CM');
    insert into country (id, countryname, countrycode) values(31,'Canada','CA');
    insert into country (id, countryname, countrycode) values(32,'Central African Republic','CF');
    insert into country (id, countryname, countrycode) values(33,'Chad','TD');
    insert into country (id, countryname, countrycode) values(34,'Chile','CL');
    insert into country (id, countryname, countrycode) values(35,'China','CN');
    insert into country (id, countryname, countrycode) values(36,'Colombia','CO');
    insert into country (id, countryname, countrycode) values(37,'Congo','CG');
    insert into country (id, countryname, countrycode) values(38,'Cook Is.','CK');
    insert into country (id, countryname, countrycode) values(39,'Costa Rica','CR');
    insert into country (id, countryname, countrycode) values(40,'Cuba','CU');
    insert into country (id, countryname, countrycode) values(41,'Cyprus','CY');
    insert into country (id, countryname, countrycode) values(42,'Czech Republic','CZ');
    insert into country (id, countryname, countrycode) values(43,'Denmark','DK');
    insert into country (id, countryname, countrycode) values(44,'Djibouti','DJ');
    insert into country (id, countryname, countrycode) values(45,'Dominica Rep.','DO');
    insert into country (id, countryname, countrycode) values(46,'Ecuador','EC');
    insert into country (id, countryname, countrycode) values(47,'Egypt','EG');
    insert into country (id, countryname, countrycode) values(48,'EI Salvador','SV');
    insert into country (id, countryname, countrycode) values(49,'Estonia','EE');
    insert into country (id, countryname, countrycode) values(50,'Ethiopia','ET');
    insert into country (id, countryname, countrycode) values(51,'Fiji','FJ');
    insert into country (id, countryname, countrycode) values(52,'Finland','FI');
    insert into country (id, countryname, countrycode) values(53,'France','FR');
    insert into country (id, countryname, countrycode) values(54,'French Guiana','GF');
    insert into country (id, countryname, countrycode) values(55,'Gabon','GA');
    insert into country (id, countryname, countrycode) values(56,'Gambia','GM');
    insert into country (id, countryname, countrycode) values(57,'Georgia','GE');
    insert into country (id, countryname, countrycode) values(58,'Germany','DE');
    insert into country (id, countryname, countrycode) values(59,'Ghana','GH');
    insert into country (id, countryname, countrycode) values(60,'Gibraltar','GI');
    insert into country (id, countryname, countrycode) values(61,'Greece','GR');
    insert into country (id, countryname, countrycode) values(62,'Grenada','GD');
    insert into country (id, countryname, countrycode) values(63,'Guam','GU');
    insert into country (id, countryname, countrycode) values(64,'Guatemala','GT');
    insert into country (id, countryname, countrycode) values(65,'Guinea','GN');
    insert into country (id, countryname, countrycode) values(66,'Guyana','GY');
    insert into country (id, countryname, countrycode) values(67,'Haiti','HT');
    insert into country (id, countryname, countrycode) values(68,'Honduras','HN');
    insert into country (id, countryname, countrycode) values(69,'Hongkong','HK');
    insert into country (id, countryname, countrycode) values(70,'Hungary','HU');
    insert into country (id, countryname, countrycode) values(71,'Iceland','IS');
    insert into country (id, countryname, countrycode) values(72,'India','IN');
    insert into country (id, countryname, countrycode) values(73,'Indonesia','ID');
    insert into country (id, countryname, countrycode) values(74,'Iran','IR');
    insert into country (id, countryname, countrycode) values(75,'Iraq','IQ');
    insert into country (id, countryname, countrycode) values(76,'Ireland','IE');
    insert into country (id, countryname, countrycode) values(77,'Israel','IL');
    insert into country (id, countryname, countrycode) values(78,'Italy','IT');
    insert into country (id, countryname, countrycode) values(79,'Jamaica','JM');
    insert into country (id, countryname, countrycode) values(80,'Japan','JP');
    insert into country (id, countryname, countrycode) values(81,'Jordan','JO');
    insert into country (id, countryname, countrycode) values(82,'Kampuchea (Cambodia )','KH');
    insert into country (id, countryname, countrycode) values(83,'Kazakstan','KZ');
    insert into country (id, countryname, countrycode) values(84,'Kenya','KE');
    insert into country (id, countryname, countrycode) values(85,'Korea','KR');
    insert into country (id, countryname, countrycode) values(86,'Kuwait','KW');
    insert into country (id, countryname, countrycode) values(87,'Kyrgyzstan','KG');
    insert into country (id, countryname, countrycode) values(88,'Laos','LA');
    insert into country (id, countryname, countrycode) values(89,'Latvia','LV');
    insert into country (id, countryname, countrycode) values(90,'Lebanon','LB');
    insert into country (id, countryname, countrycode) values(91,'Lesotho','LS');
    insert into country (id, countryname, countrycode) values(92,'Liberia','LR');
    insert into country (id, countryname, countrycode) values(93,'Libya','LY');
    insert into country (id, countryname, countrycode) values(94,'Liechtenstein','LI');
    insert into country (id, countryname, countrycode) values(95,'Lithuania','LT');
    insert into country (id, countryname, countrycode) values(96,'Luxembourg','LU');
    insert into country (id, countryname, countrycode) values(97,'Macao','MO');
    insert into country (id, countryname, countrycode) values(98,'Madagascar','MG');
    insert into country (id, countryname, countrycode) values(99,'Malawi','MW');
    insert into country (id, countryname, countrycode) values(100,'Malaysia','MY');
    insert into country (id, countryname, countrycode) values(101,'Maldives','MV');
    insert into country (id, countryname, countrycode) values(102,'Mali','ML');
    insert into country (id, countryname, countrycode) values(103,'Malta','MT');
    insert into country (id, countryname, countrycode) values(104,'Mauritius','MU');
    insert into country (id, countryname, countrycode) values(105,'Mexico','MX');
    insert into country (id, countryname, countrycode) values(106,'Moldova, Republic of','MD');
    insert into country (id, countryname, countrycode) values(107,'Monaco','MC');
    insert into country (id, countryname, countrycode) values(108,'Mongolia','MN');
    insert into country (id, countryname, countrycode) values(109,'Montserrat Is','MS');
    insert into country (id, countryname, countrycode) values(110,'Morocco','MA');
    insert into country (id, countryname, countrycode) values(111,'Mozambique','MZ');
    insert into country (id, countryname, countrycode) values(112,'Namibia','NA');
    insert into country (id, countryname, countrycode) values(113,'Nauru','NR');
    insert into country (id, countryname, countrycode) values(114,'Nepal','NP');
    insert into country (id, countryname, countrycode) values(115,'Netherlands','NL');
    insert into country (id, countryname, countrycode) values(116,'New Zealand','NZ');
    insert into country (id, countryname, countrycode) values(117,'Nicaragua','NI');
    insert into country (id, countryname, countrycode) values(118,'Niger','NE');
    insert into country (id, countryname, countrycode) values(119,'Nigeria','NG');
    insert into country (id, countryname, countrycode) values(120,'North Korea','KP');
    insert into country (id, countryname, countrycode) values(121,'Norway','NO');
    insert into country (id, countryname, countrycode) values(122,'Oman','OM');
    insert into country (id, countryname, countrycode) values(123,'Pakistan','PK');
    insert into country (id, countryname, countrycode) values(124,'Panama','PA');
    insert into country (id, countryname, countrycode) values(125,'Papua New Cuinea','PG');
    insert into country (id, countryname, countrycode) values(126,'Paraguay','PY');
    insert into country (id, countryname, countrycode) values(127,'Peru','PE');
    insert into country (id, countryname, countrycode) values(128,'Philippines','PH');
    insert into country (id, countryname, countrycode) values(129,'Poland','PL');
    insert into country (id, countryname, countrycode) values(130,'French Polynesia','PF');
    insert into country (id, countryname, countrycode) values(131,'Portugal','PT');
    insert into country (id, countryname, countrycode) values(132,'Puerto Rico','PR');
    insert into country (id, countryname, countrycode) values(133,'Qatar','QA');
    insert into country (id, countryname, countrycode) values(134,'Romania','RO');
    insert into country (id, countryname, countrycode) values(135,'Russia','RU');
    insert into country (id, countryname, countrycode) values(136,'Saint Lueia','LC');
    insert into country (id, countryname, countrycode) values(137,'Saint Vincent','VC');
    insert into country (id, countryname, countrycode) values(138,'San Marino','SM');
    insert into country (id, countryname, countrycode) values(139,'Sao Tome and Principe','ST');
    insert into country (id, countryname, countrycode) values(140,'Saudi Arabia','SA');
    insert into country (id, countryname, countrycode) values(141,'Senegal','SN');
    insert into country (id, countryname, countrycode) values(142,'Seychelles','SC');
    insert into country (id, countryname, countrycode) values(143,'Sierra Leone','SL');
    insert into country (id, countryname, countrycode) values(144,'Singapore','SG');
    insert into country (id, countryname, countrycode) values(145,'Slovakia','SK');
    insert into country (id, countryname, countrycode) values(146,'Slovenia','SI');
    insert into country (id, countryname, countrycode) values(147,'Solomon Is','SB');
    insert into country (id, countryname, countrycode) values(148,'Somali','SO');
    insert into country (id, countryname, countrycode) values(149,'South Africa','ZA');
    insert into country (id, countryname, countrycode) values(150,'Spain','ES');
    insert into country (id, countryname, countrycode) values(151,'Sri Lanka','LK');
    insert into country (id, countryname, countrycode) values(152,'St.Lucia','LC');
    insert into country (id, countryname, countrycode) values(153,'St.Vincent','VC');
    insert into country (id, countryname, countrycode) values(154,'Sudan','SD');
    insert into country (id, countryname, countrycode) values(155,'Suriname','SR');
    insert into country (id, countryname, countrycode) values(156,'Swaziland','SZ');
    insert into country (id, countryname, countrycode) values(157,'Sweden','SE');
    insert into country (id, countryname, countrycode) values(158,'Switzerland','CH');
    insert into country (id, countryname, countrycode) values(159,'Syria','SY');
    insert into country (id, countryname, countrycode) values(160,'Taiwan','TW');
    insert into country (id, countryname, countrycode) values(161,'Tajikstan','TJ');
    insert into country (id, countryname, countrycode) values(162,'Tanzania','TZ');
    insert into country (id, countryname, countrycode) values(163,'Thailand','TH');
    insert into country (id, countryname, countrycode) values(164,'Togo','TG');
    insert into country (id, countryname, countrycode) values(165,'Tonga','TO');
    insert into country (id, countryname, countrycode) values(166,'Trinidad and Tobago','TT');
    insert into country (id, countryname, countrycode) values(167,'Tunisia','TN');
    insert into country (id, countryname, countrycode) values(168,'Turkey','TR');
    insert into country (id, countryname, countrycode) values(169,'Turkmenistan','TM');
    insert into country (id, countryname, countrycode) values(170,'Uganda','UG');
    insert into country (id, countryname, countrycode) values(171,'Ukraine','UA');
    insert into country (id, countryname, countrycode) values(172,'United Arab Emirates','AE');
    insert into country (id, countryname, countrycode) values(173,'United Kiongdom','GB');
    insert into country (id, countryname, countrycode) values(174,'United States of America','US');
    insert into country (id, countryname, countrycode) values(175,'Uruguay','UY');
    insert into country (id, countryname, countrycode) values(176,'Uzbekistan','UZ');
    insert into country (id, countryname, countrycode) values(177,'Venezuela','VE');
    insert into country (id, countryname, countrycode) values(178,'Vietnam','VN');
    insert into country (id, countryname, countrycode) values(179,'Yemen','YE');
    insert into country (id, countryname, countrycode) values(180,'Yugoslavia','YU');
    insert into country (id, countryname, countrycode) values(181,'Zimbabwe','ZW');
    insert into country (id, countryname, countrycode) values(182,'Zaire','ZR');
    insert into country (id, countryname, countrycode) values(183,'Zambia','ZM');

    好,一切准备就绪,启动springboot项目,浏览器访问,注意controller中打印

    第一次请求:

    controller打印: 

    第二次请求:

     controller打印:

    OK ,验证完毕! 完美!!!

    补充:

      在做分页功能时,前端分页插件一般都需要一些诸如当前页数,总条数,总共多少页之类的数据,这时可以引用PageInfo这个对象,它完全能够满足插件的分页要求。

     @GetMapping("/findAll")
        public PageInfo<Country> findAll(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "20") Integer pageSize) {
            PageHelper.startPage(pageNum, pageSize);
            List<Country> countries = countryMapper.findAll();
    
    //        Page page = (Page) countries;
    //        System.out.println("每页展示条数:" + page.getPageSize());
    //        System.out.println("总条数:" + page.getTotal());
    //        System.out.println("当前页:" + page.getPageNum());
    //        System.out.println("总页数:" + page.getPages());
            PageInfo<Country> result = new PageInfo<>(countries);
            return result;
        }

    请求测试:

     查看PageInfo类的源码,不难发现,它对前端分页插件的属性支持还是很全面的

        private int pageNum;  // 当前页码
        private int pageSize;  // 每页展示的多少条数据
        private int size;         // 数据总条数
        private int startRow;   
        private int endRow;
        private int pages;      // 总共多少页
        private int prePage;   // 前一页
        private int nextPage;  // 后一页
        private boolean isFirstPage;
        private boolean isLastPage;
        private boolean hasPreviousPage;
        private boolean hasNextPage;
        private int navigatePages;
        private int[] navigatepageNums;
        private int navigateFirstPage;
        private int navigateLastPage;

     好, 暂时就到这里吧,以后再补充!

  • 相关阅读:
    jMeter 里 CSV Data Set Config Sharing Mode 的含义详解
    如何使用 jMeter Parallel Controller
    使用 Chrome 开发者工具 coverage 功能分析 web 应用的渲染阻止资源的执行分布情况
    使用 Chrome 开发者工具的 lighthouse 功能分析 web 应用的性能问题
    关于 SAP 电商云首页加载时触发的 OCC API 请求
    SAP UI5 确保控件 id 全局唯一的实现方法
    SAP 电商云 Accelerator 和 Spartacus UI 的工作机制差异
    介绍一个好用的能让网页变成黑色背景的护眼 Chrome 扩展应用
    Chrome 开发者工具 performance 标签页的用法
    Client Side Cache 和 Server Side Cache 的区别
  • 原文地址:https://www.cnblogs.com/z-qinfeng/p/11874767.html
Copyright © 2011-2022 走看看