建一个 page 对象传入前台的 page,和 limit 参数(推荐使用泛型,限定返回的参数类型,例子的话应该是 Page\
调用 dao 或者 service 层时传入 page 对象
Page pages = new Page(Integer.valueOf(page), Integer.valueOf(limit)); List<Map> list = dtjcXmGeneralreportService.getCxList(pages, csrwId,xlId,xb,ppbzId,Integer.valueOf(topSpeed));
|
service 接口层
List<Map> getCxList(Page pages, String csrwId, String xlId, String xb,String bz,Integer topSpeed);
|
service 层
@Override public List<Map> getCxList(Page pages, String csrwId, String xlId, String xb,String bz,Integer topSpeed) { return dtjcXmGeneralreportMapper.getCxList(pages, csrwId,xlId,xb,bz,topSpeed); }
|
dao 层
List<Map> getCxList(@Param("pages") Page pages,@Param("csrwId") String csrwId,@Param("xlId") String xlId,@Param("xb") String xb,@Param("bz") String bz,@Param("topSpeed") Integer topSpeed);
|
同时写 sql 的时候不需要专门使用 page,只需要正常的写 sql,使用参数筛选即可
回到 controller 里
map.put("count", pages.getTotal()); map.put("data", list);
|
至此是城轨项目的使用 page 方法
以下是 mybatis-plus 官方的使用参考
原文链接
<property name="plugins"> <array> <bean class="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"> <property name="sqlParser" ref="自定义解析类、可以没有"/> <property name="dialectClazz" value="自定义方言类、可以没有"/> <property name="countSqlParser" ref="countSqlParser"/> </bean> </array> </property>
<bean id="countSqlParser" class="com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize"> <property name="optimizeJoin" value="true"/> </bean>
|
@Configuration @MapperScan("com.baomidou.cloud.service.*.mapper*") public class MybatisPlusConfig {
@Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true)); return paginationInterceptor; }
@Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2)); return interceptor; }
}
|
public interface UserMapper {
IPage<User> selectPageVo(Page<?> page, Integer state); }
|
- UserMapper.xml 等同于编写一个普通 list 查询,mybatis-plus 自动替你分页
<select id="selectPageVo" resultType="com.baomidou.cloud.entity.UserVo"> SELECT id,name FROM user WHERE state=#{state} </select>
|
- UserServiceImpl.java 调用分页方法
public IPage<User> selectUserPage(Page<User> page, Integer state) { return userMapper.selectPageVo(page, state); }
|