mybatisPlus 使用分页插件时返回map
时间: 2023-08-02 11:06:27 浏览: 164
Mybatis-Plus默认分页插件返回的是IPage<T>对象,其中T为查询结果的实体类类型。如果您需要返回Map类型的分页结果,可以通过自定义分页拦截器来实现。以下是实现步骤:
1. 定义自定义分页拦截器MybatisMapPageInterceptor,继承PaginationInterceptor类,并重写intercept方法。在该方法中,将IPage<T>对象中的records转换为Map类型,并返回。具体实现如下:
```
public class MybatisMapPageInterceptor extends PaginationInterceptor {
@Override
public Object intercept(Invocation invocation) throws Throwable {
Object result = invocation.proceed();
if (result instanceof IPage) {
IPage page = (IPage) result;
List<Map<String, Object>> mapList = new ArrayList<>();
for (Object record : page.getRecords()) {
Map<String, Object> map = BeanUtil.beanToMap(record);
mapList.add(map);
}
page.setRecords(mapList);
return page;
}
return result;
}
}
```
2. 在Mybatis配置文件中,添加自定义分页拦截器,如下:
```
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath*:mapper/*.xml"/>
<property name="plugins">
<array>
<bean class="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"/>
<bean class="com.example.demo.interceptor.MybatisMapPageInterceptor"/>
</array>
</property>
</bean>
```
这样,您就可以在使用Mybatis-Plus的分页插件时,返回Map类型的分页结果了。
阅读全文