逐条操作数据库的时候都会经历下面一个流程:
创建数据库连接、打开、执行SQL、关闭连接。
创建和打开数据库连接是很慢的,所以你逐条插入的时候觉得慢,就是慢在这个地方。
而批量插入的时候,只创建一次数据库连接,因此会快的多。
附上批量插入的mybatis sql写法:
- <insert id="batchInsert" parameterType="java.util.List">
- INSERT INTO TEST(ID,TEST)
- VALUES
- <foreach collection="list" item="item" index="index" separator="," >
- (#{item.id},#{item.test})
- </foreach>
- </insert>
- 注意:collection="list" 这里参数只能是list 或者collection,否则会报错。