赞
踩
PageHelper是一个开源的MyBatis分页插件。它可以通过拦截器来实现自动分页。PageHelper拦截器会在查询语句执行之前拦截它并自动为其添加分页参数。PageHelper可以支持各种不同类型的数据库,包括MySQL、Oracle和PostgreSQL等。 PageHelper非常易于使用,只需要在pom.xml文件中添加依赖即可。
在Spring Boot应用中使用PageHelper分页插件,可以通过以下步骤来配置application.yml
文件:
pom.xml
文件中添加以下依赖:<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>{PageHelper版本号}</version>
</dependency>
application.yml
文件中添加以下内容:mybatis:
configuration:
# 开启驼峰命名规则
map-underscore-to-camel-case: true
# 分页插件配置
plugins:
- com.github.pagehelper.PageInterceptor
# Mapper文件的位置
mapper-locations: classpath:mapper/*.xml
# MyBatis的配置文件位置
config-location: classpath:mybatis-config.xml
# PageHelper插件的配置
pagehelper:
# 分页合理化参数配置
reasonable: true
# 支持通过 Mapper 接口参数来传递分页参数
support-methods-arguments: true
# 默认每页条数
default-page-size: 20
# 默认第一页
default-page-num: 1
其中,mybatis.configuration.plugins
指定了PageHelper分页插件的拦截器,mybatis.pagehelper.*
指定了PageHelper插件的配置参数。
@Mapper
public interface UserMapper {
List<User> selectAll();
// 使用PageHelper分页
List<User> selectAllWithPage();
}
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> findAllWithPage(int pageNum, int pageSize) {
// 开启分页
PageHelper.startPage(pageNum, pageSize);
// 查询所有用户
return userMapper.selectAllWithPage();
}
}
通过以上步骤,即可在Spring Boot应用中使用PageHelper分页插件进行数据分页操作。
1.首先,在pom.xml
文件中添加以下依赖:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
2.接着,在application.yml
文件中添加以下内容:
spring:
main:
allow-circular-references: true
不加这个配置报下面的错
The dependencies of some of the beans in the application context form a cycle:
┌──->──┐
| com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration
└──<-──┘
这是一个循环依赖的错误。错误信息表明,应用程序上下文中某些bean的依赖关系形成了一个循环。具体来说,com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration和其他一些bean之间存在循环依赖。
3.mapper接口
@Mapper
public interface UserMapper {
List<String> selectNameAll();
}
4.mapper.xml
<select id="selectNameAll" resultType="String">
select name from user
</select>
5.在Service类中调用Mapper接口方法
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<String> selectNameAll(Integer pageNum,Integer pageSize) {
PageHelper.startPage(pageNum,pageSize);
List<String> names = userMapper.selectNameAll();
PageInfo<String> info = new PageInfo<>(names);
System.out.println(info);
return names;
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。