分页实现简单代码
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}