Mybatis-Plus根據時間段去查詢數據的實現示例

業務需求:在前端界面選擇開始時間、結束時間,後臺根據拿到的開始、結束時間去數據庫中查詢該段時間的數據集返回給前端界面。

1、前端我使用的是elementUI和vue框架,最好是在前端界面進行一個簡單的校驗規則,對比一下開始時間和結束時間的大小,校驗的代碼很簡單,直接在觸發查詢按鈕的函數前面加入校驗即可。代碼如下:

if(this.StafPsnClctDetlDFormQuery.startTime >= this.StafPsnClctDetlDFormQuery.endTime){
          this.$message.info(
          '開始時間不能大於結束,請重新輸選擇'
          )
        }else{
          //進行查詢操作
          )

在這裡插入圖片描述

2、這段代碼直接是serviceimpl中的實現類,使用的是分頁查詢,具體的參數解釋如下,其中最重要的就是ge和le方法:

/**
     * 分頁查詢信息
     * @param pageNumber 頁碼
     * @param pageSize 每頁數量
     * @param sort 正序/倒序
     * @param order 排序字段-屬性名
     * @param QueryDto 參數 DTO 對象,直接將前端傳過來的數據封裝成一個對象,之後再到對象裡面進行取值
     * @return 分頁對象
     */
    @Override
    public Map<String, Object> queryByDTOPage(int pageNumber, int pageSize, String sort, String order, QueryDto queryDto ) {
        //調用中臺或DB
    	IQuery<QueryDto > page = QueryResult.of(pageNumber, pageSize, sort, order);
        IPage<QueryDto > da = dvIdxStafPsnClctDetlDDAO.selectPage(page,new QueryWrapper<QueryDto >()
            .and(ToolUtil.isNotEmpty(QueryDto .getIndexName()),wrapper -> wrapper.like("INDEX_NAME",QueryDto .getIndexName()))
            .and(ToolUtil.isNotEmpty(QueryDto .getStartTime()),wrapper -> wrapper.ge("START_TIME",QueryDto .getStartTime()))
            .and(ToolUtil.isNotEmpty(QueryDto .getEndTime()),wrapper -> wrapper.le("END_TIME",QueryDto .getEndTime()))
                .orderByAsc("START_TIME")
        );
    	List<QueryDto > list = QueryDtoAssembler.toQueryDtoList(da.getRecords());

    	Map<String,Object> rs = new HashMap<String, Object>();
    	rs.put("pageNumber", pageNumber);
    	rs.put("pageSize", pageSize);
    	rs.put("total", da.getTotal());
    	rs.put("result", list );
    	return rs;	    	
	}

下面是mybatis_plus官網中的解釋,不懂得大傢可以直接點擊鏈接去官網查看:Mybatis-Plus官網

在這裡插入圖片描述

在這裡插入圖片描述

到此,功能實現。

其實剛開始寫這個功能的時候沒想到實現起來這樣簡單,查瞭網上許多教程都沒有思路,之後直接就去找到Mybatis-Plus官網,看瞭API文檔,將數據傳進去功能就實現瞭。

到此這篇關於Mybatis-Plus根據時間段去查詢數據的實現示例的文章就介紹到這瞭,更多相關Mybatis-Plus 時間段查詢內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀:

    None Found