在service类中
例如:
1
| List<Map<String, Object>> selectStatistics(@Param(Constants.WRAPPER) Wrapper<Map<String, Object>> wrapper);
|
方式1-注解方式-Mapper类
1 2
| @Select("select * from stat_data ${ew.customSqlSegment}") List<Map<String, Object>>selectStatistics(@Param(Constants.WRAPPER) Wrapper wrapper);
|
方式2-xml方式
1 2 3
| <select id="selectStatistics" resultType="hashmap"> select * from stat_data ${ew.customSqlSegment} </select>
|
加入分页能力
分页插件配置
spring xml 方式
1 2 3 4
| <plugins> <plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"> </plugin> </plugins>
|
spring boot 方式
增加一个配置文件MybatisPlusConfig.java
1 2 3 4 5 6 7 8 9
| @EnableTransactionManagement @Configuration @MapperScan("com.your.package.**.mapper") public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } }
|
自动分页
xml 方式
在service类中声明方法
1
| IPage<StatReult> selectStatistics(Page page, @Param(Constants.WRAPPER) Wrapper wrapper);
|
在mapper.xml文件中
1 2 3
| <select id="selectStatistics" resultType="StatReult"> select * from stat_data ${ew.customSqlSegment} </select>
|
在serviceImpl类中实现方法
1 2 3
| IPage<StatReult> selectStatistics(Page page, @Param(Constants.WRAPPER) Wrapper wrapper){ return this.baseMapper.selectStatistics(page, wrapper); }
|
在controller中使用
1 2 3 4 5 6 7 8 9 10
| @RequestMapping("/stats") @ResponseBody public Page selectStatistics( @RequestParam(name = "page", defaultValue = "1") int page, @RequestParam(name = "size", defaultValue = "20") 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
| @Select("select * from stat_data ${ew.customSqlSegment}") IPage<StatReult> selectStatistics(Page page, @Param(Constants.WRAPPER) Wrapper wrapper);
|
其他参照
xml 方式
处理
动态参数
比如state
,使用@Param
来指定参数名,支持多个
1 2
| @Select("select * from stat_data WHERE state=#{state}") IPage<StatReult> selectStatistics(Page page, @Param("state") Integer state);
|
【【注意】】:必须指定一个实体类,如StatReult
,在直接使用其他如HashMap
将会出现错误,似乎是因为需要取得getter
及setter
方法来处理结果数据。
结束
MyBatis-Plus文档
或
MyBatis-Plus文档