专栏首页卯金刀GGspringBoot2整合pagehelper的爬坑经历

springBoot2整合pagehelper的爬坑经历

疫情期间,在家办公,周末看pageHelper分页,遂解决问题;

首先,把正确的代码贴出来,供大家参考:

源码地址: https://gitee.com/maojindaogg/hake

1、正确的pom配置,重点注意spring-boot2.2.4.RELEASE和pagehelper1.2.12的版本搭配

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.heke</groupId>
    <artifactId>ssm</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>ssm</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>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

2、application.properties,注意此处可以不配置

##helperDialect: mysql
##reasonable: true
##supportMethodsArguments: true
##parames: count=countSql
server.port=8081

#mysql
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.url= jdbc:mysql://localhost:3306/hake?serverTimezone=Asia/Shanghai&characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = longfor

mybatis.mapper-locations = classpath*:mapper/*.xml
mybatis.type-aliases-package=heke.ssm

3、UserMapper

/**
 * @Author: Liu Yue
 * @Descripition:
 * @Date; Create in 2020/2/15 16:00
 **/
@Mapper
public interface UserMapper {
    List<User> findAll();
}

<mapper namespace="com.heke.ssm.UserMapper">
    <select id="findAll" parameterType="java.lang.String" resultType="com.heke.ssm.User" >
        select * from user
    </select>
</mapper>

4、User

import lombok.Data;

@Data
public class User {
    // 主键id
    private Integer id;
    private String name;
    private Integer age;
}

5、UserController测试

@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserMapper userMapper;


    @GetMapping("/findAll")
    public List<User> findAll(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "20") Integer pageSize) {
        PageHelper.startPage(pageNum, pageSize);
        List<User> countries = userMapper.findAll();

        PageInfo<User> page = PageInfo.of(countries);
        System.out.println("每页展示条数:" + page.getPageSize());
        System.out.println("总条数:" + page.getTotal());
        System.out.println("当前页:" + page.getPageNum());
        System.out.println("总页数:" + page.getPages());

        return countries;
    }
}

6、启动类SsmApplication启动类

@SpringBootApplication
@MapperScan("heke.ssm")
public class SsmApplication {

    public static void main(String[] args) {
        SpringApplication.run(SsmApplication.class, args);
    }

}
错误的启动类
 @SpringBootApplication(exclude = {
         DataSourceAutoConfiguration.class
 })
 @MapperScan("heke.ssm")
 @EnableScheduling
 @ComponentScan(value = {"com"})
 public class SsmApplication {
    public static void main(String[] args) {
         SpringApplication.run(SsmApplication.class, args);
     }
}
 DataSourceAutoConfiguration的类解读可以参考这位师兄的博客
 https://blog.csdn.net/kangsa998/article/details/90231518

排(爬)查(坑)方(经)法(历): 1、把分页的正确方法,抽离出一个最简单的项目; 2、把配置信息往简单项目添加,得到错误的数据,定位错误;

最后提供执行sql

CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '姓名',
  `age` int(3) DEFAULT NULL COMMENT '年龄',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【easypoi(二)使用模板导出爬坑经历】

    1、开发环境,idea开发工具,windows10系统,JDK8.0;系统部署环境,CentorOS7;

    用户5640963
  • SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

    如果需要,参看之前的博文:http://blog.csdn.NET/zhshulin/article/details/30779873

    用户5640963
  • springboot一个实例项目的pom.xml文件

    1、搭建的基础是公司提供的一个xxx-xxx-web-parent的包,相当于对springboot的parent包的封装。

    用户5640963
  • 微服务综合案例-03-其他服务的创建

      上篇文章我们详细的介绍了product服务的创建,因为其他几个服务的创建过程是相似的,所以其他几个服务我们就快速创建了。

    用户4919348
  • Spring Cloud Feign 中使用Hystrix进行请求降级和快速失败

    微服务中经常会用到熔断器来增强服务依赖的稳定性,他可以在网络连接缓慢,资源繁忙,暂时不可用,服务脱机等情况中进行服务的快速失败,并可自我恢复,以避免请求线程的堆...

    胖虎
  • Spring IOC

    spring 就是一个大工厂,可以将所有对象创建和依赖关系维护,交给 spring 管理。

    希希里之海
  • Spring MVC之基于java config无xml配置的web应用构建

    第二节依然放上项目结构,在这里把xml的结构也截进来了,对于我们的示例demo而言,最大的区别就是没有了webapp,更没有webapp下面的几个xml配置文件

    一灰灰blog
  • 学习sharding-jdbc 分库分表扩展框架

    https://gitee.com/a247292980/sharding-jdbc

    ydymz
  • ssm整合的pom.xml依赖

    用户2409797
  • Maven构建的Spring项目需要哪些依赖?

    用户2409797

扫码关注云+社区

领取腾讯云代金券