SpringBoot 通过注解的方式整合 Mybatis + PageHelper 分页显示

tk.mybatis

mapper-spring-boot-starter

2.1.5

com.github.pagehelper

pagehelper-spring-boot-starter

1.2.13

2.3 准备数据库

  1. 数据库创建及输入插入

准备一张 user 表,有 idnameage 三个属性,其中 id 为主键且自增,然后插入三条数据;

CREATE TABLE user (

id int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键’,

name varchar(50) DEFAULT NULL COMMENT ‘姓名’,

age int(11) DEFAULT NULL COMMENT ‘年龄’,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

INSERT INTO user values (1,“村雨遥”,25);

INSERT INTO user values (2,“张三”,26);

INSERT INTO user values (3,“李四”,27);

  1. 数据源配置

在项目配置文件 application.properties 中配置数据源;

数据库配置

spring.datasource.username=root

spring.datasource.password=****

spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

2.4 pojo 层

根据数据库创建实体类,为了精简代码,后面过程中都或多或少用了 Lombok 插件,所以需要事先在 pom.xml 引入;

org.projectlombok

lombok

true

package com.cunyu.pojo;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

/**

  • @author : cunyu

  • @version : 1.0

  • @className : User

  • @date : 2020/7/26 20:44

  • @description : User 实体类

*/

@Data

@NoArgsConstructor

@AllArgsConstructor

public class User {

private Long id;

private String name;

private Integer age;

}

2.5 dao 层

实体类创建完成后,编写实体类对应接口;

package com.cunyu.dao;

import com.cunyu.pojo.User;

import org.apache.ibatis.annotations.Mapper;

import org.apache.ibatis.annotations.Param;

import org.apache.ibatis.annotations.Select;

import java.util.List;

/**

  • @author : cunyu

  • @version : 1.0

  • @className : UserDao

  • @date : 2020/7/27 0:39

  • @description : User 接口

*/

@Mapper

public interface UserDao {

/**

  • @param

  • @return 用户列表

  • @description 查找所有用户

  • @date 2020/7/27 8:13

  • @author cunyu1943

  • @version 1.0

*/

@Select(“SELECT id,name,age FROM user”)

List queryAll();

}

2.6 util 层

package com.cunyu.util;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import java.util.List;

/**

  • @author : cunyu

  • @version : 1.0

  • @className : PageHelperUtil

  • @date : 2020/7/27 8:16

  • @description : PageHelper 分页结果集

*/

@Data

public class PageHelperUtil {

/共有数据/

private Long total;

/共有页数/

private Integer pageTotal;

/当前页/

private Integer page;

/每页显示条数/

private Integer pageSize;

/结果集/

private List list;

}

2.7 service 层

  1. service 接口

package com.cunyu.service;

import com.cunyu.pojo.User;

import com.cunyu.util.PageHelperUtil;

/**

  • @author : cunyu

  • @version : 1.0

  • @className : UserService

  • @date : 2020/7/27 0:38

  • @description : userService 接口

*/

public interface UserService {

PageHelperUtil getUserByPage(Integer page, Integer pageSize);

}

  1. service 接口实现类

package com.cunyu.se
rvice.impl;

import com.cunyu.dao.UserDao;

import com.cunyu.pojo.User;

import com.cunyu.service.UserService;

import com.cunyu.util.PageHelperUtil;

import com.github.pagehelper.PageHelper;

import com.github.pagehelper.PageInfo;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import java.util.List;

/**

  • @author : cunyu

  • @version : 1.0

  • @className : UserServiceImpl

  • @date : 2020/7/27 0:38

  • @description : userService 接口实现类

*/

@Service

public class UserServiceImpl implements UserService {

@Autowired

private UserDao userDao;

@Override

public PageHelperUtil getUserByPage(Integer page, Integer pageSize) {

// 设置起始页以及每页显示数

PageHelper.startPage(page, pageSize);

// 查询

List list = userDao.queryAll();

// 将查询结果给 pageInfo 处理

PageInfo pageInfo = new PageInfo<>(list);

// 创建结果集对象

PageHelperUtil result = new PageHelperUtil<>();

// 将结果封装到结果集对象,当前页

result.setPage(page);

// 每页数

result.setPageSize(pageInfo.getPageSize());

// 总页数

result.setPageTotal(pageInfo.getPages());

// 总条数

result.setPageTotal((int) pageInfo.getTotal());

// 结果集

result.setList(pageInfo.getList());

return result;

}

}

2.8 controller 层

package com.cunyu.controller;

import com.cunyu.pojo.User;

import com.cunyu.service.UserService;

import com.cunyu.util.PageHelperUtil;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RestController;

/**

  • @author : cunyu

  • @version : 1.0

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值