mybatis plus分页查询
时间: 2023-05-27 19:01:39 浏览: 192
Mybatis Plus提供了非常方便的分页查询功能。具体步骤如下:
1.在mapper中继承BaseMapper,BaseMapper提供了常用的CRUD和分页方法。
```java
public interface UserMapper extends BaseMapper<User> {
}
```
2.在查询方法中使用Page参数,设置分页信息。其中current为当前页码,size为每页记录数
```java
Page<User> page = new Page<>(current, size);
List<User> users = userMapper.selectPage(page, null);
```
3.在xml中可以直接使用 page 参数进行分页查询。同时Mybatis Plus提供了内置的分页插件,可以自动生成分页sql语句,不需要手写。
```xml
<select id="selectUserPage" resultMap="BaseResultMap">
select * from user
</select>
```
相关问题
mybatis plus 分页查询
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层的分页查询方法中,获取分页结果并返回给前端。
mybatis plus 分页查询失效
在使用Mybatis Plus进行分页查询时,如果发现分页无法正常发挥作用,这可能是由于配置问题导致的。根据你提供的引用内容,我能够看到你在MybatisPlusConfig类中配置了分页拦截器,但是在双数据源配置类中并没有进行相应的配置。
为了解决这个问题,你需要在数据源配置类中配置分页拦截器。你可以在该类中创建一个MybatisPlusInterceptor对象,并将分页拦截器添加到内部拦截器中。最后,将该拦截器添加到SqlSessionFactory的插件列表中,以使其生效。
通过以上的配置,你就可以保证Mybatis Plus的分页功能正常发挥作用了。请注意,为了避免可能出现的缓存问题,你还需要设置MybatisConfiguration#useDeprecatedExecutor为false。
希望我的回答对你有帮助,如果还有其他问题,请随时提问。
阅读全文