mybatis 流式讀取大量MySQL資料

2021-10-05 06:49:32 字數 1548 閱讀 5107

jdbc從資料庫獲取資料的三種讀取方式:

1.一次全部(預設):一次獲取全部。

2.流式:多次獲取,一次一行。

3.游標:多次獲取,一次多行。

mybatis沒有任何配置的話是採取第一種方式 當資料量比較大的時候 容易引發oom

現在介紹第二種:流式獲取資料

**示例 

#還需要繼承resulthandler 實現類為

/**

* @param * @author zhanglf

*/@allargsconstructor

@noargsconstructor

@log4j2

public class od***portresulthandlerimplements resulthandler

@override

public void handleresult(resultcontext resultcontext)

}private void handle() ] size[{}], start.",type.getname(),ods.size());

dealdatatolocal(ods, type,odslocalpath,writer,reader);

log.info("od***portresulthandler deal type[{}] size[{}], end. 目前共處理[{}]條",type.getname(),ods.size(),total+ods.size());

} catch (exception e) finally

}public void end()

handle();

}public void closebuffer()catch(exception e)]",exceptionutils.getstacktrace(e));}}

}

流式檔案讀取

流式檔案讀取適用於一些比較大的檔案,可以分多次將檔案讀取到記憶體中 rs.pipe 將可讀流中的內容直接輸出到可寫流中 var fs require fs 建立乙個可讀流 var rs fs.createreadstream c users believer pictures s ed pictur...

MySQL 流式讀取 MySQL中流式查詢使用

mysql中流式查詢使用 瀏覽次數 766 標籤 mysql 一 前言 mysql 是目前使用比較廣泛的關係型資料庫,而從資料庫裡面根據條件查詢資料到記憶體的情況想必大家在日常專案實踐中都有使用。當指定條件的資料量特別大時候一般是通過分頁的方式在前端頁面通過 tag 標籤一頁頁的載入資料到記憶體 但...

Mybatis的Cursor使用 實現流式查詢

流式查詢指的是查詢成功後不是返回乙個集合而是返回乙個迭代器,應用每次從迭代器取一條查詢結果。流式查詢的好處是能夠降低記憶體使用。如果沒有流式查詢,我們想要從資料庫取 1000 萬條記錄而又沒有足夠的記憶體時,就不得不分頁查詢,而分頁查詢效率取決於表設計,如果設計的不好,就無法執行高效的分頁查詢。因此...