Mybatis動態(tài)拼接sql提高插入速度實例
Mybatis動態(tài)拼接sql提高插入速度
實驗室的項目,Excel文件的數(shù)據(jù)入庫,原始錄入語句如下:
void insertCaculatePlanData(@Param("excelName") String excelName,
@Param("CaculatePlanColumnName") List<String>CaculatePlanColumnName,
@Param("InsertIntoCaculatePlanData")List<Object> InsertIntoCaculatePlanData); <insert id="insertCaculatePlanData">
insert into ${excelName} (
<foreach item="item" collection="CaculatePlanColumnName" separator=",">
${item}
</foreach>
) values (
<foreach item="it" collection="InsertIntoCaculatePlanData" separator=",">
#{it}
</foreach>
)
</insert>其中,表名是參數(shù)、列名是參數(shù)、列值是參數(shù),每來一行數(shù)據(jù),就執(zhí)行插入一行的數(shù)據(jù)。
當數(shù)據(jù)量少的時候,沒問題,有效時間內(nèi)可能完成插入,但是當數(shù)據(jù)量達到一定程度的時候,每次都一個sql插入,超時。
所以采用了拼接sql的方式加快速度:
void insertCaculatePlanDataBetter(@Param("excelName") String excelName,
@Param("CaculatePlanColumnName") List<String>CaculatePlanColumnName,
@Param("InsertIntoCaculatePlanData")List<List<Object>> InsertIntoCaculatePlanData); <!--優(yōu)化的拼接插入語句-->
<insert id="insertCaculatePlanDataBetter">
INSERT INTO ${excelName}(
<foreach item="item" collection="CaculatePlanColumnName" separator=",">
${item}
</foreach>
)
VALUES
<foreach item="o" collection="InsertIntoCaculatePlanData" separator=",">(
<foreach item="itm" collection="o" separator=",">
#{itm}
</foreach>
)
</foreach>
</insert>到此這篇關(guān)于Mybatis動態(tài)拼接sql提高插入速度實例的文章就介紹到這了,更多相關(guān)Mybatis動態(tài)sql內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot實現(xiàn)多端口監(jiān)聽的代碼示例
當你需要在同一個Spring Boot應(yīng)用中,通過不同的端口來提供不同的服務(wù)或功能時,就需要實現(xiàn)多端口監(jiān)聽,所以本文給大家介紹了SpringBoot實現(xiàn)多端口監(jiān)聽的方法示例,并有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-09-09
Swagger實現(xiàn)動態(tài)條件注入與全局攔截功能詳細流程
這篇文章主要介紹了Swagger實現(xiàn)動態(tài)條件注入與全局攔截功能詳細流程,Swagger 可以提供 API 操作的測試文檔,本文記錄 Swagger 使用過程中遇到的小問題2023-01-01

