IPage使用 大概


進行快速創建IPage對象 page是分頁的要求,wrapper是分頁的搜查要求 -- 這里的Query是一個封裝

IPage<AppPregnancyEntity> page = this.page(new Query<AppPregnancyEntity>().getPage(params), queryWrapper);
public class Query<T> {

   public IPage<T> getPage(Map<String, Object> params) {
       return this.getPage(params, null, false);
  }

   public IPage<T> getPage(Map<String, Object> params, String defaultOrderField, boolean isAsc) {
       //分頁參數
       long curPage = 1;
       long limit = 10;

       if(params.get(Constant.PAGE) != null){
           curPage = Long.parseLong((String)params.get(Constant.PAGE));
      }
       if(params.get(Constant.LIMIT) != null){
           limit = Long.parseLong((String)params.get(Constant.LIMIT));
      }

       //分頁對象
       Page<T> page = new Page<>(curPage, limit);

       //分頁參數
       params.put(Constant.PAGE, page);

       //排序字段
       //防止SQL注入(因為sidx、order是通過拼接SQL實現排序的,會有SQL注入風險)
       String orderField = SQLFilter.sqlInject((String)params.get(Constant.ORDER_FIELD));
       String order = (String)params.get(Constant.ORDER);


       //前端字段排序
       if(StringUtils.isNotEmpty(orderField) && StringUtils.isNotEmpty(order)){
           if(Constant.ASC.equalsIgnoreCase(order)) {
               return  page.addOrder(OrderItem.asc(orderField));
          }else {
               return page.addOrder(OrderItem.desc(orderField));
          }
      }

       //沒有排序字段,則不排序
       if(StringUtils.isBlank(defaultOrderField)){
           return page;
      }

       //默認排序
       if(isAsc) {
           page.addOrder(OrderItem.asc(defaultOrderField));
      }else {
           page.addOrder(OrderItem.desc(defaultOrderField));
      }

       return page;
  }
}

 

如何跑起來? -- 以AppTrouble為例子 QueryWrapper具體看Mybatis-plus

1.serviceImpl

// 進行分頁查詢
       Page<AppTroubleEntity> hashMapPage = new Page<>(Integer.parseInt((String) params.get("page")), Integer.parseInt((String) params.get("limit")));

       IPage<AppTroubleEntity> page = appTroubleDao.selectAppTroubleMy(hashMapPage,wrapper);

2.appTroubleDao

@Mapper
@Repository
public interface AppTroubleDao extends BaseMapper<AppTroubleEntity> {

   /**
    * 肇事記錄頁面查詢
    * @param page
    * @param queryWrapper
    * @return
    */
   IPage<AppTroubleEntity> selectAppTroubleMy(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper<AppTroubleEntity> queryWrapper);
}

3.appTroubleDao.xml

<select id="selectAppTroubleMy" resultType="com.uht.modules.app.entity.AppTroubleEntity">
      SELECT app_trouble.*,user_info.name as userName,sys_org.name AS communityStr
      FROM app_trouble
      INNER JOIN user_info ON app_trouble.user_id = user_info.id
      INNER JOIN sys_org ON app_trouble.community = sys_org.id
      ${ew.customSqlSegment}
   </select>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM