PageHelper.startPage(pageNum,pageSize);
List<User> userList = userRepository.getUserList();
PageInfo<User> pageInfo = new PageInfo<>(userList);
<?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 项目配置文件。
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
实体类
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;
}
}
数据访问
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();
}
<?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>
服务层
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);
}
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;
}
}
控制器
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
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/");
}
}
启动类
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}