MyBatis执行MySql批量插入数据

MySQL批量插入数据语法为:

insert into my_table(field1, field2, field3)
values
("f1_vaule1","f2_vaule1","f3_vaule1"),
("f1_vaule2","f2_vaule2","f3_vaule2"),
("f1_vaule3","f2_vaule3","f3_vaule3");

批量插入的多行数据在values后使用逗号隔开。

MyBatis可以使用foreach生成多行数据。

<insert id="insertOrUpdate" parameterType="java.util.List">
  insert into my_table(field1, field2, field3)
  values
  <foreach collection="list" item="item" index="index" separator="," >
    (#{item.field1,jdbcType=VARCHAR}, #{item.field2,jdbcType=VARCHAR}, #{item.field3,jdbcType=VARCHAR})
  </foreach>
</insert>

foreach属性:

  • item:每次迭代的元素
  • index:迭代的索引
  • separator:每次迭代语句的分割符

版权声明:著作权归作者所有。

相关推荐

Docker MySQL备份和恢复数据库命令

这两个命令用于对正在运行的Docker MySQL容器做备份和恢复备份Docker MySQLdocker exec CONTAINER /usr/bin/mysqldump -u username --password=xxx DATABASE > backup.sql 从sql文

在React JSX内部执行循环

这里实现一个表格组件来演示如何在React的JSX内部执行循环。案例假设有一个表格组件,和一个行组件<ObjectRow />,现在需要在表格组件里循环生成行组件<ObjectRow />。是不能直接在jsx里使用for循环,这里介绍两种方法:map函数和立即执行函数。方法一:使用map函数render: function ()&nb

MySQL开启general_log查看执行的SQL语句

general log会记录下发送给MySQL服务器的所有SQL记录,因为SQL的量大,默认是不开启的。一些特殊情况(如排除故障)可能需要临时开启一下。开启MySQL的general logMySQL有三个参数用于设置general log:general_log:用于开启general log。ON表示开启,OFF表示关闭。log_output:日志输出的

MySQL使用mysqldump导出数据

导出数据主要使用命令mysqldump导出整个数据库命令:mysqldump -u用户名 -p 数据库名 > 导出的文件名 示例mysqldump -udbuser -p mydb > mydb.sql 导出表命令:mysqldump -u用户名 -p 数据

JVM 类执行机制:解释执行(interpreter)和编译执行(JIT)

JVM执行字节码有两种方式:解释模式(interpreter)和编译模式(jit)。整个java程序执行过程如下:使用javac把.java源文件编译为字节码,文件一般以.class作为后缀字节码经过JIT环境变量进行判断,是否属于热点代码(多次调用的方法,或循环等)热点代码使用JIT编译为可执行的机器码非热点代码使用解释器解释执行所有字节码解释器将每个Java指令都转译成对等的微处理器指令,并根

查看MySQL数据库空间使用情况

information_schema是MySQL的系统数据库,information_schema里的tables表存放了整个数据库各个表的使用情况。可以使用sql来统计出数据库的空间使用情况,相关字段:table_schema:数据库名table_name:表名table_rows:记录数data_length:数据大小index_length:索引大小统计表使用空间mysql> select