mybatis plus分页实现总结

时间:2019-09-20
本文章向大家介绍mybatis plus分页实现总结,主要包括mybatis plus分页实现总结使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Store为数据库实体
StoreQueryRequest 为请求参数对象

StoreItemVO 为自定义对象

简单单表分页

public interface StoreService {
    IPage<Store> query(StoreQueryRequest param);
}
StoreServiceImpl
@Override
public IPage<Store> query(StoreQueryRequest param) {
    Page<Store> page = new Page<>(param.getPageIndex(), param.getPageSize());
    
    QueryWrapper<Store> qw = new QueryWrapper<>();
    qw.eq("store_id", param.getStoreId);
    
    return storeMapper.selectPage(page, qw);
}
StoreController
@GetMapping(value = "/query")
public IPage<Store> query(StoreQueryRequest param) {
    IPage<Store> iPage = storeService.query(param);
    return iPage;
}

多表查询分页

StoreMapper
public interface StoreMapper extends BaseMapper<Store> {
    List<StoreItemVO> query(IPage<StoreItemVO> page, @Param("param") StoreQueryRequest param);
}
StoreMapper.xml
<select id="query" parameterType="com.demo.model.StoreQueryRequest" resultType="com.demo.model.StoreItemVO">
    SELECT
    *
    FROM
    t_store
    <where>
        <if test="param.storeId != null">
            and id = #{param.storeId}
        </if>
    </where>
</select>
StoreService
public interface StoreService extends IService<Store> {
    IPage<StoreItemVO> query(StoreQueryRequest param);
}
StoreServiceImpl
public class StoreServiceImpl extends ServiceImpl<StoreMapper, Store> implements StoreService {
    @Autowired
    private StoreMapper StoreMapper;

    @Override
    public IPage<StoreItemVO> query(StoreQueryRequest param) {
        IPage<StoreItemVO> iPage = new Page<>(param.getPageIndex(), param.getPageSize());
        List<StoreItemVO> list = StoreMapper.query(iPage, param);
        iPage.setRecords(list);
        return iPage;
    }
}
StoreController
@GetMapping(value = "/query")
public IPage<StoreItemVO query(StoreQueryRequest param) {
    IPage<StoreItemVO> iPage = StoreService.query(param);
    return iPage;
}

以上ipage和page引用的包

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

原文地址:https://www.cnblogs.com/zengnansheng/p/11558004.html