一:目标
现在项目都是前后端分离,在前端进行分页查询的时候,后端需要返回的页面信息有,当前页面,总页数,页面显示的数量,数据信息。So,也就说我们要使用分页插件查询数据库,将查询回来的数据封装成下列对象返回给前端。
@Data
@AllArgsConstructor
public class PageInfo<T> {
//页面数量
private Integer pageSize;
//数据
private List<T> list;
//当前页码
private Integer currentPage;
//总页数
private Integer totalPage;
}
二:Do it
2.1 SpringBoot整合Mybatis-plus
我们的目标是去分页查询下列数据库表中的数据并返回。
POM文件:我们需要导入mysql连接包以及mybatis包
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
yml配置文件:给到数据库的连接数据
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
password: root
username: root
url: jdbc:mysql://127.0.0.1:3306/mybatisplus
下面就很简单了,用过mybatis-plus的都知道,写一个pojo,写一个mapper,一个service,一个controller就收工啦
demo结构:
user 实体类
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
mapper
@Repository //加这个注解只是为了少一个报警信息,不加也没事,可以运行
public interface UserMapper extends BaseMapper<User> {
void selectList(QueryWrapper<Object> wrapper);
}
启动类
@SpringBootApplication
@MapperScan("com.lll.mybatisplusdemo.mapper") //包扫描
public class MybatisplusDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisplusDemoApplication.class, args);
}
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
service类:将查询的数据封装为pageInfo返回
@Service
public class UserService {
@Autowired
private UserMapper mapper;
public PageInfo<User> queryUserByPage(int startPage,int pageSize,User user){
Page<User> page = new Page<>();
page.setCurrent(startPage);
page.setSize(pageSize);
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.setEntity(user);
IPage<User> userIPage = mapper.selectPage(page, wrapper);
return new PageInfo<User>(pageSize,userIPage.getRecords(),
startPage,Long.valueOf(userIPage.getTotal()).intValue());
}
}
controller类
@RestController
@RequestMapping("user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("page")
public PageInfo<User> queryUserListByPage(@RequestParam(defaultValue = "0") int startPage,
@RequestParam(defaultValue = "5") int PageSize,
@RequestBody(required = false) User user) {
return userService.queryUserByPage(startPage, PageSize, user);
}
}
接下来随你了,就是。