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