Mybatis分页插件

  1. 添加依赖

在 pom.xml 文件中添加以下依赖,这是 MyBatis 分页插件的核心依赖:

<!-- Mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>最新版本</version>
</dependency>

<!-- Mybatis 分页插件 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>最新版本</version>
</dependency>
  1. 配置分页插件

在配置类中添加以下代码,配置 MyBatis 分页插件:

@Configuration
public class MybatisConfig {
    
    @Bean
    public PageInterceptor pageInterceptor() {
        PageInterceptor interceptor = new PageInterceptor();
        Properties properties = new Properties();
        // 设置分页插件的属性
        properties.setProperty("helperDialect", "mysql");
        properties.setProperty("reasonable", "true");
        properties.setProperty("supportMethodsArguments", "true");
        interceptor.setProperties(properties);
        return interceptor;
    }
}

其中,PageInterceptor 是 MyBatis 提供的分页插件,它可以拦截 MyBatis 的 SQL 执行过程,在执行前后进行一些额外的处理,例如分页、性能监控、防止 SQL 注入等。在配置中,我们设置了分页插件的属性,例如使用 MySQL 数据库,是否合理化分页等。

  1. 在 Mapper 接口中使用分页

在 Mapper 接口中定义查询方法时,可以使用 PageHelper.startPage 方法来开启分页,例如:

public interface UserMapper {
    @Select("SELECT * FROM users WHERE username LIKE CONCAT('%', #{username}, '%')")
    List<User> selectUsersByUsername(@Param("username") String username);
}

其中,@Select 注解用于定义 SQL 语句,#{username} 是一个参数,可以在后面的方法参数中绑定。在方法中使用 PageHelper.startPage 方法来开启分页,例如:

@Service
public class UserServiceImpl implements UserService {
    
    @Autowired
    private UserMapper userMapper;
    
    public PageInfo<User> findUsersByUsername(String username, int pageNum, int pageSize) {
        PageHelper.startPage(pageNum, pageSize);
        List<User> users = userMapper.selectUsersByUsername(username);
        return new PageInfo<>(users);
    }
}

其中,PageHelper.startPage 方法用于开启分页,pageNum 和 pageSize 用于指定页码和每页记录数,userMapper.selectUsersByUsername(username) 是 Mapper 方法的调用,返回一个查询结果列表,new PageInfo<>(users) 用于包装分页结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值