Mybatis批量插入数据(SQLServer与MySQL)

MyBatis批量插入数据使用的都是 <foreach></foreach>标签,SQL Server与MySQL语法是不一样的

SQL Server数据库

insert 语句插入多行格式如下:

  insert into BS_BarCode (SNCode,PrintDate) values ('2021121301',getdate());
  insert into BS_BarCode (SNCode,PrintDate) values ('2021121302',getdate());

MySQL数据库

insert 语句插入多行格式有两种:
格式一:

insert into bs_barcode (SNCode,PrintDate) values ('2021121301',now()),('2021121302',now())

格式二:

insert into bs_barcode (SNCode,PrintDate) values ('2021121303',now());
insert into bs_barcode (SNCode,PrintDate) values ('2021121304',now())

SQL Server数据库批量插入如果使用MySQL的格式一插入会报语法错误,只能使用第一种
在这里插入图片描述

MyBatis批量插入两种数据库对比

SQL Server

    <!--批量保存sn条码-->
    <insert id="insertSns">
        <foreach collection="sns" item="sns" separator=";" index="index" >
          insert into BS_BarCode (SNCode,PrintDate) values (#{sns}, getdate())
        </foreach>
    </insert>

MySQL

   <insert id="insertProduct" parameterType="java.util.List">
        insert into m_in(Name,Code,Qty,DocNo,Epc,ScanTime,Scaner,Notes)
        values
        <foreach collection="list" item="item" separator="," index="index" >
          (#{item.name},#{item.code},#{item.qty},#{item.docno},#{item.epc},#{item.scantime},#{item.scanner},#{item.notes})
        </foreach>
   </insert>

SQL Server与MySQL获取当前时间的函数

SQL Server获取当前时间的函数:getdate()
MySQL获取当前时间的函数:now()

猜你喜欢

转载自blog.csdn.net/weixin_44226883/article/details/122249787