MyBatis-Plus 是一个 MyBatis 的增强工具,在简化开发、提高效率方面有着显著的优势。MyBatis-Plus 提供了分页插件(Pagination Interceptor),可以方便地实现分页查询。在使用分页插件自定义查询方法时,可以按照以下步骤进行:
1. 引入依赖
首先,在 pom.xml
文件中引入 MyBatis-Plus 相关的依赖:
<dependencies><!-- MyBatis-Plus 核心依赖 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>最新版本号</version></dependency><!-- MySQL 连接池(示例) --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>最新版本号</version></dependency><!-- 其他依赖 -->
</dependencies>
2. 配置分页插件
在 MyBatis-Plus 的配置类中配置分页插件:
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MybatisPlusConfig {@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}
}
3. 创建实体类和 Mapper 接口
创建对应的实体类和 Mapper 接口。例如,有一个 User
表:
// User.java
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;@Data
@TableName("user")
public class User {@TableIdprivate Long id;private String name;private Integer age;// 其他字段...
}// UserMapper.java
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;@Mapper
public interface UserMapper extends BaseMapper<User> {// 自定义分页查询@Select("SELECT * FROM user WHERE age > #{age}")IPage<User> selectUserByAge(Page<?> page, int age);
}
4. 使用分页查询
在 Service 层或者 Controller 层使用分页查询:
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UserService {@Autowiredprivate UserMapper userMapper;public IPage<User> getUserByAge(int currentPage, int pageSize, int age) {// 创建分页对象Page<User> page = new Page<>(currentPage, pageSize);// 调用自定义分页查询方法return userMapper.selectUserByAge(page, age);}
}
5. 调用分页查询
在 Controller 层或者其他调用位置调用分页查询方法:
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/users/byAge")public IPage<User> getUserByAge(@RequestParam(defaultValue = "1") int currentPage,@RequestParam(defaultValue = "10") int pageSize,@RequestParam int age) {return userService.getUserByAge(currentPage, pageSize, age);}
}
总结
- 引入依赖:确保项目中包含 MyBatis-Plus 和数据库连接池依赖。
- 配置分页插件:在配置类中注册
PaginationInterceptor
。 - 创建实体类和 Mapper 接口:定义实体类和 Mapper 接口,并在 Mapper 接口中添加自定义分页查询方法。
- 使用分页查询:在 Service 层中调用自定义分页查询方法。
- 调用分页查询:在 Controller 层或其他位置调用 Service 层的方法。