spring boot 开发后端,数据库为 mysql,持久层用 mybitas,前端模板用 thymeleaf。
在进行数据展示时,难免要进行数据的分页传送,我们采用 mybitas 的一个分页插件——pageHelper,实现分页查询。
声明:只进行 pageHelper 相关代码的给出。
application.properties
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
pagehelper.page-size-zero=true
说明:数据源的配置略
pom.xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.11</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
<version>1.2.13</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
声明:这四个依赖的版本是 2020-5-6 的最新版本。
你可以根据自己所处的时间更改。
说明:web、tymeleaf、mybatis、mysql、jdbc 的依赖略
User.java
import top.leeti.pojo;
import lombok.Data;
import lombok.ToString;
@Data
@ToString
public class User {
private Integer id;
private String username;
private String password;
}
说明:
- 数据库中有一张 user 表。
- 这里使用了一个 lombok。不懂得请自行 百度:lombok
UserMapper.java
package top.leeti.mapper;
import org.apache.ibatis.annotations.*;
import top.leeti.pojo.User;
import java.util.List;
@Mapper
public interface UserMapper {
@Select("select id,username,password from user order by id desc")
List<User> getUserAll();
}
UserService.java
package top.leeti.service;
import top.leeti.pojo.User;
public interface UserService {
List<User> getUserAll();
}
UserServiceImpl.java
package top.leeti.service;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import top.leeti.mapper.UserMapper;
import top.leeti.pojo.User;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userDao;
@Override
@Transactional
public List<User> getUerAll() {
int pageNum = 1; //第几页
int pageSize = 5; //每页数量
PageHelper.startPage(pageNum, pageSize);
List<User> UserList = userDao.getUserAll();
PageInfo pageInfo = new PageInfo<User>(UserList);
return pageInfo;
}
}
注意:重点
1、PageHelper.startPage()实现分页。但是其后必跟一个执行 select 的方法。
2、PageInfo<?> 负责封装查询到的内容。当然你也可以写一个 util 类,自己进行二次封装。
(我就是这么做的。)