mybatis plus 分页查询
时间: 2023-09-01 19:12:55 浏览: 97
MyBatis Plus是MyBatis的增强工具,它提供了很多方便的CRUD操作和通用的Mapper接口。其中包括了分页查询的功能。
首先,在Mapper接口中定义分页查询方法:
```java
public interface UserMapper extends BaseMapper<User> {
IPage<User> selectUserPage(Page<User> page, @Param("name") String name);
}
```
这里使用了MyBatis Plus提供的`Page`和`IPage`接口,`Page`接口用于设置分页参数,`IPage`接口用于返回分页结果。
然后,在XML映射文件中实现分页查询方法:
```xml
<select id="selectUserPage" resultType="com.example.User">
select * from user
<where>
<if test="name != null">
and name like #{name}
</if>
</where>
order by id desc
</select>
```
这里使用了MyBatis的动态SQL语法,根据传入的参数动态构建SQL语句。`<if>`标签用于判断参数是否为空,如果不为空则拼接SQL语句。
最后,在Service层中调用分页查询方法:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public IPage<User> selectUserPage(Page<User> page, String name) {
return userMapper.selectUserPage(page, name);
}
}
```
这里直接调用Mapper接口中定义的分页查询方法,并返回查询结果。在Controller层中,可以通过`@RequestParam`注解获取分页参数和查询条件,然后调用Service层的分页查询方法。
```java
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public IPage<User> selectUserPage(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize,
@RequestParam(required = false) String name) {
Page<User> page = new Page<>(pageNum, pageSize);
return userService.selectUserPage(page, name);
}
}
```
这里使用了Spring Boot提供的`@RequestParam`注解获取请求参数,`defaultValue`属性用于设置默认值,`required`属性用于设置是否必须传入该参数。最后,将分页参数和查询条件传入Service层的分页查询方法中,获取分页结果并返回给前端。
阅读全文