mybatis-plus的分页
时间: 2025-01-31 19:54:37 浏览: 57
### MyBatis-Plus 分页插件使用教程
#### 3.1 确认分页插件版本
为了确保兼容性和稳定性,在项目中应确认所使用的 `MyBatis-Plus` 版本以及对应的分页插件版本。通常推荐使用最新稳定版来获得更好的性能和支持[^1]。
#### 3.2 Maven依赖配置
在项目的 `pom.xml` 文件中添加如下依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>
<!-- 如果需要支持多数据库 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>
```
#### 3.3 配置文件设置 (application.yml 或 application.properties)
对于 Spring Boot 应用程序,可以在 `application.yml` 中进行如下配置:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-locations: classpath*:mapper/*.xml
```
#### 3.4 创建实体类
定义与数据库表结构相对应的 Java 实体类,例如 User.java :
```java
package com.example.demo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
}
```
#### 3.5 编写 Mapper 层接口
创建继承自 BaseMapper 的 Mapper 接口,用于执行 CRUD 操作:
```java
package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {}
```
#### 3.6 Service 层实现分页查询逻辑
通过 Page<T> 对象封装分页参数并调用 selectPage 方法完成分页查询:
```java
package com.example.demo.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
public Page<User> getUserListByPage(int currentPage, int pageSize){
return userMapper.selectPage(new Page<>(currentPage,pageSize),null);
}
}
```
#### 3.7 Controller 层提供 RESTful API
最后,在控制器层暴露 HTTP 请求端点供前端调用:
```java
package com.example.demo.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
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 {
@Autowired
private UserService userService;
@GetMapping("/users")
public Page<User> getUsers(@RequestParam(value="page", defaultValue="1") int page,
@RequestParam(value="size", defaultValue="10") int size){
return userService.getUserListByPage(page,size);
}
}
```
阅读全文
相关推荐

















