springboot+mybatis及利用PageHelper实现分页(后端)

mac2022-06-30  20

分页实现简单代码

PageHelper.startPage(pageNum,pageSize); List<User> userList = userRepository.getUserList(); PageInfo<User> pageInfo = new PageInfo<>(userList);

分页实现简单过程

数据库

maven配置文件

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.1.8.RELEASE</version> <relativePath/> </parent> <groupId>com.test</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!-- spring mvc --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 数据库相关 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>6.0.6</version> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency> <!-- 分页 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.12</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

springboot 项目配置文件。

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/Test?serverTimezone=PRC&characterEncoding=utf8&useSSL=false spring.datasource.username=root spring.datasource.password=wen spring.datasource.driver-class-name=com.mysql.jdbc.Driver mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.test.demo.entity

实体类

User.java

package com.test.demo.entity; import java.util.Date; public class User { private Integer id; private String name; private Integer age; private Date in_time; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Date getIn_time() { return in_time; } public void setIn_time(Date in_time) { this.in_time = in_time; } }

数据访问

UserRepository.java

package com.test.demo.repository; import com.test.demo.entity.User; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface UserRepository { List<User> getUserList(); }

UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.test.demo.repository.UserRepository"> <select id="getUserList" resultType="User"> select * from tb_user </select> </mapper>

服务层

UserService.java

package com.test.demo.service; import com.github.pagehelper.PageInfo; import com.test.demo.entity.User; public interface UserService { PageInfo<User> getUserList(int page, int limit); }

UserServiceImpl.java

package com.test.demo.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.test.demo.entity.User; import com.test.demo.repository.UserRepository; import com.test.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserServiceImpl implements UserService { @Autowired private UserRepository userRepository; @Override public PageInfo<User> getUserList(int pageNum, int pageSize) { PageHelper.startPage(pageNum,pageSize); List<User> userList = userRepository.getUserList(); PageInfo<User> pageInfo = new PageInfo<>(userList); return pageInfo; } }

控制器

UserController.java

package com.test.demo.controller; import com.github.pagehelper.PageInfo; import com.test.demo.entity.User; import com.test.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @Autowired private UserService userService; @RequestMapping("/list") public PageInfo<User> list(@RequestParam(value = "page",required = false,defaultValue = "1") int page) { return userService.getUserList(page,5); } }

如果写前端,springboot2以后,static里面的静态文件可能会无法访问,可以使用下面的类。com/test/demo/configure

WebMvcConfig.java

package com.test.demo.configure; import org.springframework.stereotype.Component; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Component public class WebMvcConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); } }

启动类

DemoApplication.java

package com.test.demo; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.test.demo.repository") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }

测试

http://localhost:8080/list?page=1

{“total”:8,“list”:[{“id”:1,“name”:“张三”,“age”:21,“in_time”:“2019-10-02T13:47:40.000+0000”},{“id”:2,“name”:“李四”,“age”:15,“in_time”:“2019-10-02T13:47:55.000+0000”},{“id”:3,“name”:“王五”,“age”:54,“in_time”:“2019-10-02T13:48:05.000+0000”},{“id”:4,“name”:“赵六”,“age”:33,“in_time”:“2019-10-02T13:48:16.000+0000”},{“id”:5,“name”:“孙七”,“age”:12,“in_time”:“2019-10-02T13:48:51.000+0000”}],“pageNum”:1,“pageSize”:5,“size”:5,“startRow”:1,“endRow”:5,“pages”:2,“prePage”:0,“nextPage”:2,“isFirstPage”:true,“isLastPage”:false,“hasPreviousPage”:false,“hasNextPage”:true,“navigatePages”:8,“navigatepageNums”:[1,2],“navigateFirstPage”:1,“navigateLastPage”:2}

http://localhost:8080/list?page=2

{“total”:8,“list”:[{“id”:6,“name”:“周八”,“age”:53,“in_time”:“2019-10-02T13:49:02.000+0000”},{“id”:7,“name”:“吴九”,“age”:48,“in_time”:“2019-10-02T13:49:25.000+0000”},{“id”:8,“name”:“郑十”,“age”:22,“in_time”:“2019-10-02T13:49:38.000+0000”}],“pageNum”:2,“pageSize”:5,“size”:3,“startRow”:6,“endRow”:8,“pages”:2,“prePage”:1,“nextPage”:0,“isFirstPage”:false,“isLastPage”:true,“hasPreviousPage”:true,“hasNextPage”:false,“navigatePages”:8,“navigatepageNums”:[1,2],“navigateFirstPage”:1,“navigateLastPage”:2}

最新回复(0)