在mybatis-plus中使用自定义sql及分页
在service类中
例如:1
List<Map<String, Object>> selectStatistics(; Wrapper<Map<String, Object>> wrapper)
方式1-注解方式-Mapper类
1 |
|
方式2-xml方式
1 | <select id="selectStatistics" resultType="hashmap"> |
加入分页能力
分页插件配置
spring xml 方式
1 | <plugins> |
spring boot 方式
增加一个配置文件MybatisPlusConfig.java1
2
3
4
5
6
7
8
9
public class MybatisPlusConfig {
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
自动分页
xml 方式
在service类中声明方法1
IPage<StatReult> selectStatistics(Page page, ; Wrapper wrapper)
在mapper.xml文件中1
2
3<select id="selectStatistics" resultType="StatReult">
select * from stat_data ${ew.customSqlSegment}
</select>
在serviceImpl类中实现方法1
2
3IPage<StatReult> selectStatistics(Page page, { Wrapper wrapper)
return this.baseMapper.selectStatistics(page, wrapper);
}
在controller中使用1
2
3
4
5
6
7
8
9
10
public Page selectStatistics(
int page,
int size){
QueryWrapper<Map<String,Object>> queryWrapper = new QueryWrapper<>();
Page ipage = new Page(page, size);
iStatService.selectStatistics(ipage,queryWrapper);
return ipage;
}
mapper @Select注解方式
在mapper类中声明方法1
2
IPage<StatReult> selectStatistics(Page page, ; Wrapper wrapper)
其他参照xml 方式
处理
动态参数
比如state
,使用@Param
来指定参数名,支持多个1
2
IPage<StatReult> selectStatistics(Page page, ; Integer state)
【【注意】】:必须指定一个实体类,如StatReult
,在直接使用其他如HashMap
将会出现错误,似乎是因为需要取得getter
及setter
方法来处理结果数据。