Mybatis动态拼接sql提高插入速度实例
更新时间:2023年09月09日 08:31:24 作者:沐雨金鳞
这篇文章主要介绍了Mybatis动态拼接sql提高插入速度实例,当数据量少的时候,没问题,有效时间内可能完成插入,但是当数据量达到一定程度的时候,每次都一个sql插入超时,所以采用了拼接sql的方式加快速度,需要的朋友可以参考下
Mybatis动态拼接sql提高插入速度
实验室的项目,Excel文件的数据入库,原始录入语句如下:
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>其中,表名是参数、列名是参数、列值是参数,每来一行数据,就执行插入一行的数据。
当数据量少的时候,没问题,有效时间内可能完成插入,但是当数据量达到一定程度的时候,每次都一个sql插入,超时。
所以采用了拼接sql的方式加快速度:
void insertCaculatePlanDataBetter(@Param("excelName") String excelName,
@Param("CaculatePlanColumnName") List<String>CaculatePlanColumnName,
@Param("InsertIntoCaculatePlanData")List<List<Object>> InsertIntoCaculatePlanData); <!--优化的拼接插入语句-->
<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>到此这篇关于Mybatis动态拼接sql提高插入速度实例的文章就介绍到这了,更多相关Mybatis动态sql内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
mybatis执行批量更新batch update 的方法(oracle,mysql两种)
这篇文章主要介绍了mybatis执行批量更新batch update 的方法,提供oracle和mysql两种方法,非常不错,需要的朋友参考下2017-01-01
SpringBoot+MyBatis实现动态字段更新的三种方法
字段更新是指在数据库表中修改特定列的值的操作,这种操作可以通过多种方式进行,具体取决于业务需求和技术环境,本文给大家介绍了在Spring Boot和MyBatis中,实现动态更新不固定字段的三种方法,需要的朋友可以参考下2025-04-04
Java Spring详解如何配置数据源注解开发以及整合Junit
Spring 是目前主流的 Java Web 开发框架,是 Java 世界最为成功的框架。该框架是一个轻量级的开源框架,具有很高的凝聚力和吸引力,本篇文章带你了解如何配置数据源、注解开发以及整合Junit2021-10-10


最新评论