当前位置: 首页 > article >正文

批量插入对比-mysql-oracle-sqlserver

单个插入mysql

//单个  根据有值就插入,无值不改动  
<insert id="insertOne" keyColumn="id" keyProperty="id"
            parameterType="com.test.log" useGeneratedKeys="true">
        insert into test_mysql_tab
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="log != null">log,</if>
            <if test="createTime != null">create_time,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id,jdbcType=BIGINT},</if>
            <if test="log != null">#{log,jdbcType=VARCHAR},</if>
            <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
        </trim>
    </insert>


// 批量

批量插入

mysql

    <insert id="insertListNew">
        insert into
        test_mysql_tab (c1,c2,c3)values
            <foreach collection="list" item="item" index="index" separator="," >
                (
                #{item.c1}, #{item.c2},#{item.c3},#{item.c3}
                )
            </foreach>
    </insert>

sqlServer

   <insert id="saveBatchManual">
INSERT INTO test_tab (ca1, ca2, ca3, ca4, ca5)
select
    <foreach collection="list" index="index" item="item">
    <if test="index != 0">
    union select
    </if>	#{item.ca1},#{item.ca2},#{item.ca3,jdbcType=TIMESTAMP},#{item.ca4},#{item.ca5}
    </foreach>
</insert>

Oracle

    <insert id="batchInsertOracleInfo" parameterType="com.test.ParamObj" >
        insert all
        <foreach collection="list" item="item" index="index">
            into test_oracle_tab(c1,c2,c3,c4) values (#{item.c1},#{item.c2},#{item.c3},#{item.c4})
        </foreach>
        select 1 from dual
    </insert>

 oracle另一种方式

批量插入注意定义别名,否则可能会提示不能明确定义的列

 <insert id="insertBatchOracle" parameterType="com.test.batch.TestParam">
insert into test_oracle_tab(id,name)
<foreach collection="list" item="i" separator="union all" open="select * from (" close=")">
	select #{i.id} id,#{i.name} name from dual
</foreach>
</insert>


<!-- 方法2 -->
 <insert id="insertBatchOracle" parameterType="com.test.batch.TestParam">
insert into test_oracle_tab(id,name)
<foreach collection="list" item="i" separator="union all">
	select #{i.id} id,#{i.name} name from dual
</foreach>
</insert>


http://www.kler.cn/a/577640.html

相关文章:

  • android paging使用教程
  • 1133: Knight Moves
  • Git - 补充工作中常用的一些命令
  • React基础之ReactRouter
  • 2025年2月平价旗舰手机性能对比
  • Java 基本程序设计结构——从 C++ 到 Java
  • 《AI大模型专家之路》No.2:用三个模型洞察大模型NLP的基础能力
  • python从入门到精通(二十六):python文件操作之Word全攻略(基于python-docx)
  • 算法006——和为S 的两个数
  • 智能合约中权限管理不当
  • 系统架构设计师—系统架构设计篇—微服务架构
  • 基于PyTorch的深度学习3——基于autograd的反向传播
  • 恢复IDEA的Load Maven Changes按钮
  • dify通过ollama简单配置deepseek模型
  • 如何禁用移动端页面的多点触控和手势缩放
  • 【Gaussian Model】高斯分布模型
  • 新手学习爬虫的案例
  • Centos8部署mongodb报错记录
  • Linux 基础---重定向命令(>、>>)、echo
  • 正版Windows10/11系统盘制作详细教程