mybatis plus 分页的简单案例
时间: 2023-08-31 10:35:57 浏览: 97
mybatis-plus分页查询的实现示例
### 回答1:
好的,下面是一个简单的 MyBatis-Plus 分页案例:
1. 在 pom.xml 文件中添加 MyBatis-Plus 的依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
```
2. 创建一个查询对象:
```java
@Data
public class UserQuery {
private String username;
private Integer age;
private Integer current = 1;
private Integer size = 10;
}
```
其中 current 表示当前页码,size 表示每页大小。
3. 创建一个 Mapper 接口:
```java
@Mapper
public interface UserMapper extends BaseMapper<User> {
List<User> selectPage(@Param("query") UserQuery query);
}
```
4. 创建一个 Service 层:
```java
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public Page<User> getPage(UserQuery query) {
Page<User> page = new Page<>(query.getCurrent(), query.getSize());
QueryWrapper<User> wrapper = new QueryWrapper<>();
if (query.getUsername() != null) {
wrapper.like("username", query.getUsername());
}
if (query.getAge() != null) {
wrapper.eq("age", query.getAge());
}
return userMapper.selectPage(page, wrapper);
}
}
```
5. 在 Controller 中使用:
```java
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public Page<User> getPage(UserQuery query) {
return userService.getPage(query);
}
}
```
请求地址为 /users,可以加上 username 和 age 两个查询参数,返回对应的分页结果。
以上就是一个简单的 MyBatis-Plus 分页案例。
### 回答2:
MyBatis Plus是一个基于MyBatis的增强工具,它提供了许多便于开发的功能和工具,其中包括分页功能。
下面是一个简单的使用MyBatis Plus实现分页查询的案例:
1. 首先,在你的项目中添加MyBatis Plus的依赖。可以通过Maven或者Gradle进行引入。
2. 创建一个包含查询条件的实体类,假设为UserEntity。在该实体类中定义需要查询的字段以及getter和setter方法。
3. 在数据库中创建一个用户表,假设为user。表中包含id、name和age字段。
4. 创建UserMapper接口,继承BaseMapper<UserEntity>接口。这样就可以继承MyBatis Plus提供的基础CRUD方法。
5. 在UserMapper接口中添加一个自定义的方法,用于分页查询。如下所示:
```java
List<UserEntity> selectUserByPage(Page<UserEntity> page, QueryWrapper<UserEntity> queryWrapper);
```
6. 在UserMapper.xml中实现这个方法。在select标签中编写SQL语句,如下所示:
```xml
<select id="selectUserByPage" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM user
<where>
<if test="ew != null and ew.sqlSegment != null">
${ew.sqlSegment}
</if>
</where>
<if test="page != null">
ORDER BY id DESC
LIMIT #{page.current}, #{page.size}
</if>
</select>
```
7. 在你的业务逻辑中,可以通过调用UserMapper的selectUserByPage方法进行分页查询。如下所示:
```java
Page<UserEntity> page = new Page<>(1, 10); // 查询第一页,每页10条数据
QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 20); // 查询年龄为20的用户
List<UserEntity> userList = userMapper.selectUserByPage(page, queryWrapper); // 执行分页查询
// 打印查询结果
for (UserEntity user : userList) {
System.out.println(user.getName());
}
```
上述案例中,通过创建分页对象Page,并传入页码和每页记录数,再通过QueryWrapper设置查询条件,最后调用selectUserByPage方法进行分页查询。
这就是一个使用MyBatis Plus实现分页查询的简单案例。通过MyBatis Plus提供的简洁易用的API和强大的功能,我们可以轻松地实现分页查询需求。
### 回答3:
Mybatis Plus是一款强大的ORM框架,在实现分页功能时也提供了很方便的解决方案。
首先,需要在Mybatis Plus的配置文件中配置分页插件。可以在`mybatis-plus.properties`文件中添加如下配置:
```
mybatis-plus.pagination.interceptor=true
```
接下来,我们可以使用Mybatis Plus提供的`Page`对象来实现分页查询。首先,需要创建一个`Page`对象,指定当前页码和每页显示的记录数:
```java
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
// 当前页码为1,每页显示10条记录
Page<User> page = new Page<>(1, 10);
```
然后,可以使用Mybatis Plus提供的`selectPage`方法进行分页查询。该方法需要传入一个`Page`对象和查询条件:
```java
List<User> userList = userMapper.selectPage(page, new QueryWrapper<User>().eq("status", 1)).getRecords();
```
在执行完查询后,可以通过`getRecords`方法获取到当前页的记录列表。同时,`Page`对象还提供了一些其他有用的方法,如`getTotal`可以获取总记录数,`getCurrent`可以获取当前页码,`getSize`可以获取每页显示的记录数等。
最后,我们可以对查询结果进行遍历打印:
```java
for (User user : userList) {
System.out.println(user);
}
```
这样,我们就完成了Mybatis Plus的分页查询操作。通过使用`Page`对象和`selectPage`方法,我们可以方便地实现分页功能,提升查询效率。
阅读全文