springboot2集成pagehelper

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

 

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

以上是关于springboot2集成pagehelper的主要内容,如果未能解决你的问题,请参考以下文章

解决Springboot2.x版本pagehelper分页不生效的问题

解决Springboot2.x版本pagehelper分页不生效的问题

解决Springboot2.x版本pagehelper分页不生效的问题

SpringBoot2.0系列教程Springboot框架添加PageHelper分页查询功能

Spring boot入门:SpringBoot集成结合AdminLTE(Freemarker),利用generate自动生成代码,利用DataTable和PageHelper进行分页显示(示例(代码

spring-boot集成PageHelper和通用Mapper