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;

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM